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 location | Container location | Usage |
---|---|---|
/srv/gitlab/data | /var/opt/gitlab | For storing application data |
/srv/gitlab/logs | /var/log/gitlab | For storing logs |
/srv/gitlab/config | /etc/gitlab | For 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"
# 本地初始化仓库.gitignore无效解决方法
$ 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对已经追踪(track)的文件是无效的,需要清除缓存,清除缓存后文件将以未追踪的形式出现,这时重新添加(add)并提交(commit)就可以了。
git rm -r --cached .
git add .
git commit -m "comment"