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. 解决电脑上PPT频繁刷新的问题

    操作步骤: 桌面鼠标右击--->屏幕分辨率-----> 高级设置 ----->监视器----->颜色----->选择:增强色(16位)--->确定完成

  2. 整数对A满足二叉查找树,B满足最大堆

    1 题目 给出一组整数对 { (a[0], b[0]), (a[1], b[1]) ... (a[n-1], b[n-1]) },全部 a 值和 b 值分别不反复(随意 i != j 满足 a[i] ...

  3. registry-1.docker.io TimeOut 错误

    用Docker For Windows在Windows 10上执行docker login或者 docker pull/push的时候,经常会报这样的错误: https: Get https://re ...

  4. iOS xcodebuile 自动编译打包ipa

    xcodebuild -alltargets clean 首先进入到工程文件所在的目录.比如我的文件某个工程放在(.xcodeproj文件所在的目录) /Users/xxx/xxx 然后ce /Use ...

  5. SQL语句 怎么把从一个表中查出来数据插入到另一个表中

    (1).select * into destTbl from srcTbl(2).insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl

  6. VO、DTO与领域模型的概念

    业务对象模型(也叫领域模型 domain model)是描述业务用例实现的对象模型.它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象.业务对象模型从业务角色内部的观点定义了业务用例. ...

  7. DbScopeFactory

    using (var db = DbScopeFactory.Create()) { //这里修改数据 db.SaveChanges(); }

  8. Java多线程-BlockingQueue-ArrayBlockingQueue-LinkedBlockingQueue

    前言: BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利.本文详细介绍了Blocking ...

  9. JAVA设计模式——第 3 章 单例模式【Singleton Pattern】(转)

    这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一.独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?我们举个比较难复制的 ...

  10. Linux内存分配机制之伙伴系统和SLAB

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6539590.html  内核内存管理的一项重要工作就是如何在频繁申请释放内存的情况下,避免碎片的产生.这就要求 ...