GitLab简介

GitLab一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。它拥有与 GitHub 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。

Git、Github与Gitlab区别:
Git 是一种版本控制系统,是一个命令,是一种工具
Github,Gitlab等产品都是第三方基于git这项技术开发的
Github 是一个基于git实现的在线代码仓库,包含一个网站界面,向互联网开放
Gitlab 是一个基于git实现的在线代码仓库软件,你可以用gitlab自己搭建一个类似于github一样的系统,一般用于在企业、学校等内部网络搭建git私服

接下来,介绍下企业内部搭建gitlab环境方法,这里使用docker进行安装:

1、拉取gitlab镜像,这里选择11.10.4-ce.0版本

$ docker pull gitlab/gitlab-ce:11.10.4-ce.0

2、创建并启动gitlab容器

$ docker run --detach \
 --publish 443:443 --publish 8082:8082 --publish 22:22 \
 --name gitlab \
 --restart always \
 --volume /srv/gitlab/config:/etc/gitlab \
 --volume /srv/gitlab/logs:/var/log/gitlab \
 --volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:11.10.4-ce.0

If you are on SELinux then run this instead:

$ docker run --detach \
 --publish 443:443 --publish 8082:8082 --publish 22:22 \
 --name gitlab \
 --restart always \
 --volume /srv/gitlab/config:/etc/gitlab:Z \
 --volume /srv/gitlab/logs:/var/log/gitlab:Z \
 --volume /srv/gitlab/data:/var/opt/gitlab:Z \
gitlab/gitlab-ce:11.10.4-ce.0

3、Where is the data stored?

The GitLab container uses host mounted volumes to store persistent data: (You can fine tune these directories to meet your requirements.)


Local locationContainer locationUsage
/srv/gitlab/data/var/opt/gitlabFor storing application data
/srv/gitlab/logs/var/log/gitlabFor storing logs
/srv/gitlab/config/etc/gitlabFor storing the GitLab configuration files


4、修改gitlab.rb,并重启容器

$ vim gitlab.rb
external_url 'http://127.0.0.1:8082'

$ docker restart gitlab

5、等待服务启动完成(等1分钟左右),即可访问gitlab

首次登陆需要修改默认root用户密码,密码要设置复杂点,长度大于8位,e.g. 2Rnx8rAzqktHTp9

6、汉化

1、访问: https://gitlab.com/xhang/gitlab/tree/11-10-stable-zh, 选择要汉化的版本

2、汉化

# 将汉化文件从宿主机复制到容器中(宿主机内执行)
$ docker cp 11-10-stable-zhgitlab:/opt/gitlab/embedded/service/ 

# 进入容器(宿主机内执行)
$ docker exec -it gitlab bash 

# 进入网页文件相关目录(容器内执行)
$ cd /opt/gitlab/embedded/service/ 

# 将汉化文件覆盖原文件(容器内执行)
$ cp -rf 11-10-stable-zh/* gitlab-rails/ 

# 重启容器(宿主机内执行)
$ exit
$ docker restart gitlab

命令行指令

# 本地git全局设置
$ git config --global user.name "name"
$ git config --global user.email "name@email.com"
# 本地初始化仓库
$ git init

# 与远程仓库相连
$ git remote add origin http://name@127.0.0.1/test.git

# 提交本地到远程
git add .

git commit -m ""

git pull origin master

git push -u origin master
.gitignore无效解决方法

在工程中很容易出现.gitignore并没有忽略掉我们已经添加的文件,那是因为.gitignore对已经追踪(track)的文件是无效的,需要清除缓存,清除缓存后文件将以未追踪的形式出现,这时重新添加(add)并提交(commit)就可以了。

git rm -r --cached .
git add .
git commit -m "comment"