1 拉取docker镜像
docker pull beginor/gitlab-ce
查看下载好的镜像
[root@ch01 /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
beginor/gitlab-ce latest 5595d4ff803e 2 years ago 1.5GB
2 准备gitlab宿主机的挂载目录
# 可更换自己想要的路径
mkdir -p /opt/gitlab-data/{config,data,logs}
以上在本机建立的3个目录是为了gitlab容器通过挂载本机目录启动后可以映射配置文件,数据文件,日志文件到本机,然后后续就可以直接在本机查看和编辑了,不用再进容器操作
3 启动gitlab(关键步骤)
docker run -d --name gitlab --restart always -p 8443:443 -p 8090:80 -p 8822:22 -v /opt/gitlab-data/config:/etc/gitlab -v /opt/gitlab-data/data:/var/opt/gitlab -v /opt/gitlab-data/logs:/var/log/gitlab beginor/gitlab-ce:latest
4 修改gitlab的host
# 编辑配置文件
vim /opt/gitlab-data/config/gitlab.rb
将external_url
注释放开,并将之设置成你的ip,gitlab_rails['gitlab_ssh_host']
改成你的ip,gitlab_rails['gitlab_shell_ssh_port']
改成映射的22端口
# 配置http协议所使用的访问地址及端口,不加端口号默认为80
external_url 'http://192.168.211.135'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.211.135'
# 此端口是run时22端口映射的8822端口
gitlab_rails['gitlab_shell_ssh_port'] = 22
重启
# 重启gitlab容器
$ docker restart gitlab
4 配置gitlab
访问192.168.211.135:8090
,会看到gitlab的页面,设置一下密码,搞个gitlab123456玩一下。

4.1 创建群组
点击扳手,进入配置,创建用户组。模拟一个新项目

设置一下名称,选择私有,点击最后的创建群组。

4.2 创建用户并添加用户到群组
点击扳手,选择创建用户,设置一下相关信息

创建完后,点击编辑。修改一下用户的密码。

将刚才新建的用户添加到群组中。

4.3 创建项目
点击扳手,新建项目。

在新建页面,选择刚才新建的群组,再设置一下项目名称,选择私有,创建。

可以看到,项目已经创建完成了。

4.4 设置一下SSH
切换一下用户登录刚才创建的新用户。第一次登录会要求重置密码。

然后我们通过终端生成一下证书,在终端(cmd/git bash都可以吧)中输入ssh-keygen命令,一路enter,可以生成缺省的rsa方式的sshkey
# 生成RSA加密的key
ssh-keygen

查看生成的密钥
# ~表示用户目录,比如我的windows就是C:\Users\Administrator,并复制其中的内容
$ cat ~/.ssh/id_rsa.pub

复制红框内容到个人设置中的SSH密钥中并保存

生成密钥后,SSHkey的警告就消失了

4.5 拉取代码
本地设置一下git的全局配置
$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱"
最好在项目里面初始化一点代码,比如写点README之类的,要不然后面push和pull会出点小问题。
在项目里面复制代码路径。

gitclone 拉代码。

接下来的更新,推送可自行测试了,主要会出现账号权限问题,因为初始化的master分支是受保护的分支,默认是不能直接推送的,需要提交合并请求,也可以提高账号的权限,或者新建个dev之类的分支。
5 从master分支创建新分支
5.1 切换到master分支
# 如果只有master就不搞了
git checkout master
5.2 在当前分支上创建新分支,命令为dev
git checkout -b dev
5.3 把dev分支push到远端
git push origin dev
5.4 拉取远端分支
git pull
这时候会提示没有跟踪信息,所以还要跟踪分支
5.5 跟踪远端dev分支
git branch --set-upstream-to=origin/dev
5.6 再次pull代码
git pull
5.7 删除远端dev分支
# 删除远端
git push origin --delete dev
# 删除本地
git branch -d dev
6 回滚代码
6.1 查看历史版本
# 会出现很多版本号
git log
6.2 回退到特定版本
git reset --hard <版本号>
6.3 推送到远端
# git push 会报错,因为当前版本号比远端的版本号低, -f 强制提交
git push -f
ps:master分支是不能强推的
网友评论