GitLab版本管理

GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。在线DEMO

社区版基于MIT license开源完全免费 
无用户,协作和仓库限制 
保护你的源码安全 
管理仓库,用户与访问权限 
更多功能请看这儿

依赖组件:ruby 1.9.3+,MySQL,git,redis, Sidekiq。最低配置CPU 1G,RAM 1G+swap可以支持100用户。

安装

官方有安装包与脚本下载,官方安装指南。同样GITHUB上有个社区非官方的安装指南

但这儿里推荐bitnami下载打包安装版本 https://bitnami.com/stack/gitlab/installer ,省去很多时间。他们也提供相关WIKIubuntu为演示环境,来安装这个包

1 . 服务端 安装Gitlab

chmod  bitnami-gitlab-8.5.--linux-x64-installer.run   --修改执行权限
./bitnami-gitlab-8.5.--linux-x64-installer.run --运行安装文件

会提示一些基本的设置,例如:用户名,邮箱,密码,存放位置

2 . 服务端 启动Gitlab

 ./ctlscript.sh start

3 . 服务端 停止Gitlab

 ./ctlscript.sh stop

修改默认安装路径到/data目录下,如果安装时已经设置存放路径可以忽略此步:

cd /opt
mv gitlab-8.5.-/ /data
ln -s /data/gitlab-8.5.- gitlab-8.5.-

4. 服务端 设置防火墙

iptables -I INPUT -p tcp --dport  -j ACCEPT
service iptables save
service iptables restart
cat /etc/sysconfig/iptables

5、浏览器访问:http://192.168.7.99/users/sign_in

6、新建一个项目

Visibility Level

权限等级分三种:

  • Private 私有的,只有你自己或者组内的成员能访问
  • Internal 所有登录的用户
  • Public 公开的,所有人都可以访问

7、Git的使用

7.1 添加sshkey

git仓库之间的代码传输协议主要使用ssh协议。而一般搭建gitlab的时候使用的git用户是没有密码的,因此直接ssh是不能登录的,就需要使用ssh-keygen上传公钥,使用非对称加密传输。下面讲述如何上传你的ssh公钥:

7.1.1生成sshkey

在windows终端中敲下面的命令,第一步会生成一对私钥和公钥,分别存在 ~/.ssh/id_rsa~/.ssh/id_rsa.pub中。

ssh-keygen -t rsa

7.1.2保存sshkey到gitlab

在面板上依次点击Profile Settings –> SSH Keys –> Add SSH Keys。然后把上一步中的id_rsa.pub中的内容拷贝出来粘贴到输入框中,保存。

完成上面两步之后就成功的添加了sshkey了,然后就可以上传代码了。

7.2 初始上传代码

如果你已经使用过git了,那么这一步对你来说可以跳过了。整体来说比较简单的。
在提交代码前,还需要设置下git的用户名和邮箱(最好用英文,不要出现中文),这样提交记录才会在gitlab上显示带有你名字的记录。
在命令行窗口输入(windows需要安装打开Git Bash工具才行):
git config --global user.name"your_name"
git config --global user.email "your_email"

下面的$project_root代表工程根目录

  • 进入工程目录 cd $project_root
  • 初始化GIT本地仓库 git init
  • 添加文件到本地仓库 git add .
  • 查看本地仓库的状态 git status
  • 提交代码到仓库 git commit -m 'init commit'
  • 链接到GIT远程服务器 git remote add origin git@example.com:namespace/projectname.git
  • push代码到GIT远程服务器 git push -u origin master

“git init”之后,如下图:

“git add .”之后使用“git status”查看本地仓库的状态,如下图:

"git commit -m 'init commit'"之后,如下图:

“git commit”之后使用“git status”查看本地仓库的状态,如下图:

将本地代码提交到远程服务器上去:“git remote add origin git@localgit:wangyunpeng/tlz.common.git”和“git push -u origin master”之后,如下图:

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

7.3 克隆代码到本地

在svn中,我们都叫checkout. 把代码checkout到本地。而git中我们叫克隆,克隆会把整个仓库都拉到本地。

如,我要把刚才的工程再clone到本地。(先把本地的tlz.common文件夹删除),需要先把.ssh目录下面的config文件配置使用证书方式登录。

git clone git@example.com:namespace/projectname.git  

从现在起,只要本地作了提交,就可以通过命令:

git push origin master

把本地master分支的最新修改推送至GitLab,现在,你就拥有了真正的分布式版本库!

例如:

touch abc.txt  --创建abc.txt文件(windows直接创建)
git add abc.txt --把文件abc.txt添加到本地仓库
git commit -m 'add abc.txt' --把文件abc.txt提交到本地仓库
rm -f abc.txt --删除abc.txt文件(windows直接删除)
git rm abc.txt --从版本库中删除abc.txt文件
git commit -m 'remove abc.txt' --提交从版本库中删除abc.txt文件 git push origin master --把本地代码提交到远程服务器上,不用-u参数了。

给项目里的其他用户分配权限

使用eclipse添加maven项目到gitlab中,首先进入git bash窗口,执行初始化操作,如下图:

打开eclipse,创建maven项目,然后commit代码,如下图:

提交改变,如下图:

服务器上面新创建的空仓库,请使用下面的方式创建新的maven项目并且关联到远程服务器的git仓库项目:

git config --global user.name "administrator"
git config --global user.email "wangyunpeng@tidebuy.net"
git clone git@localgit:wangyunpeng/java.sem.db.git

注意:创建简单的项目(Create a simple project),需要手工创建项目目录并在Location中指定,否则不需要指定到项目目录直接指到Git目录就可以。

转:http://www.cnblogs.com/wintersun/p/3930900.html

http://blog.cnbluebox.com/blog/2014/04/15/gitlabde-shi-yong/

http://blog.csdn.net/huaishu/article/details/50475175

http://www.jianshu.com/p/7a0d6917e009?mType=Group (汉化)

Centos 安装 GitLab 8.5.1 版本管理的更多相关文章

  1. CentOS安装gitLab服务器

    首先利用gitlab-install-el6.sh安装,比较简单: (出处:http://www.linuxidc.com/Linux/2013-06/85754.htm) 1:如果有条件,提供一台全 ...

  2. centos安装gitlab成果

    centos安装gitlab成果 开始之前 在开始之前请先查看官方的刚需文档: https://github.com/gitlabhq/gitlabhq/blob/master/doc/install ...

  3. CentOS安装gitlab,gerrit,jenkins并配置ci流程

    CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...

  4. CentOS 安装 Gitlab

    源地址 https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/ # 清华源 https://mirrors.tuna.tsinghua.edu.cn/help/g ...

  5. 转载:centos安装gitlab详解

    原文地址:http://blog.csdn.net/jiangtao_st/article/details/73612298 一, 服务器快速搭建gitlab方法 可以参考gitlab中文社区 的教程 ...

  6. centos安装gitlab及汉化

    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务.今天,就记录一下centos部署gitlab及其汉化的操作方法. 1.下载安装 下载地址: ...

  7. 腾讯云Centos安装gitlab

    参考了网上很多人写的安装教程,结果并不好,最后阅读了官方的英文api,才安装成功,这里记录下来,方便以后使用.我的安装环境为腾讯云主机Centos7.3 64bit gitlab官方api地址点我试试 ...

  8. centos 安装gitlab

    1.开始安装依赖软件:yum -y install policycoreutils openssh-server openssh-clients postfix 2.设置postfix开机自启动,po ...

  9. centos安装gitlab

    原文链接: http://www.centoscn.com/image-text/install/2015/0320/4929.html http://www.01happy.com/centos-6 ...

随机推荐

  1. (转)unity3D 如何提取游戏资源 (反编译)+代码反编译

    原帖:http://bbs.9ria.com/thread-401140-1-1.html 首先感谢 雨松MOMO 的一篇帖子 教我们怎么提取 .ipa 中的游戏资源.教我们初步的破解unity3d资 ...

  2. 给ajax表单提交数据前面加上实体名称

    有时候我们后台做了一个引用类型例如: 下面的实体以C#为例 public class Order{ public string orderId{get;set;} public OrderItem o ...

  3. 【python】insertDB1.02

    #------------------------------------------------------------------------------------ # insertDB1.02 ...

  4. 推荐一些socket工具,TCP、UDP调试、抓包工具

    还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有 ...

  5. Android LazyList 从网络获取图片并缓存

    原演示地址 本文内容 环境 演示 LazyList 从网络获取图片并缓存 参考资料 本文是 Github 上的一个演示,通过网络获取歌手专辑的缩略图,并显示在 ListView 控件中.该演示具备将缩 ...

  6. Android 显示网络图片

    本文内容 环境 演示显示网络图片 本文演示 Android 如何显示网络图片.学习一门新的语言,最好办法就先了解该语言的语法和库,以及设计思想,再着手现实一些常用功能,毕竟以后用该语言是要写程序的,而 ...

  7. 使用Chrome保存网页为mht文件

    一直在使用chrome浏览器,但由于需要将部分网页保存为mht文件,却发现chrome默认不支持.chrome浏览器默认支持2种:单独的html文件,全部: 万能的chrome怎么可能保存不了mht? ...

  8. linux 端口转发

    一 从一台机到另一台机端口转发 启用网卡转发功能#echo 1 > /proc/sys/net/ipv4/ip_forward 举例:从192.168.0.132:21521(新端口)访问192 ...

  9. C# Linq to Entity Lamda方式分组并求和求平均值

    1.单字段分组并求和: var list = data.GroupBy(g => g.GoodsId).Select(e => new { GoodsId = e.Key, Qty = e ...

  10. 解决java网络编程IPv6问题

    如果系统中开启了IPV6协议(比如window7),java网络编程经常会获取到IPv6的地址,这明显不是我们想要的结果,搜索发现很多蹩脚的做法是:禁止IPv6协议.其实查看官方文档有详细的说明: j ...