gitlab使用docker安装
环境
- centos7
- 内存最低不小于4G
- docker
下载gitlab镜像
1 | # 搜索镜像 |
启动镜像
1 | docker run \ |
上面的命令主要意思的文件和端口映射关系配置
访问主机的11180端口,会被转发到gitlab容器的80端口
访问主机的11922端口,会被转发到gitlab容器的22端口
容器的名称叫 gitlab ,后面停止运行容器 输入 docker stop gitlab即可
配置
启动后可以通过 docker ps 查看启动的容器
启动后过一会,通过浏览器输入 http://IP:11180
即可访问容器gitlab
通过
1 | sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password |
命令我们可以拿到gitlab root账号的初始密码登录即可
访问地址配置,虽然容器启动,但是项目拉取和访问生成的地址是容器的id
访问地址的修改
可能是容器版本的问题,在项目访问上需要额外做一些配置,gitlab才能正常使用
比如主机的地址是:192.168.11.22
gitlab容器id是:ff3dgts
项目名称是:code
项目的访问地址生成的是 http://ff3dgts/code
这样导致git客户端不能成功拉去代码,
我们应该改成 http://192.168.11.22:11180/code
这样才能生效成功访问代码
方法一(docker重启后配置会丢失,不建议按照此方法配置)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# 进入容器
docker exec -it gitlab /bin/bash
# 修改配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
#找到下面的配置修改
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 192.168.11.22 #改为主机地址
port: 11180 #改为主机端口
https: false
gitlab_shell:
ssh_port: 11922 #改为主机端口- 方法二(推荐使用此方法,可以避免docker重启后配置丢失的问题)
1
2
3
4
5
6
7
8
9yangchen@yangchendeMacBook-Pro ~ % cd gitlab/etc
yangchen@yangchendeMacBook-Pro etc % vim gitlab.rb
#找到下面的配置修改
external_url 'http://192.168.11.22:11180'
nginx['listen_port'] = 80
gitlab_rails['gitlab_shell_ssh_port'] = 11922
重启容器
在gitlab容器里面:
1
gitlab-ctl restart
或者在外面直接重启gitlab:
1
docker restart gitlab
git常用命令
最后就是git的常规使用了,下面我列举一下在实际开发项目中经常使用的git命令:
git init
新项目执行Git初始化,并进行第一次提交1
2
3
4
5
6cd existing_folder
git init
git remote add origin ssh://git@localhost:11922/yangchen/test.git
git add .
git commit -m "Initial commit"
git push -u origin mastergit clone
对github、gitlab远程仓库,已有项目进行克隆1
git clone ssh://git@localhost:11922/yangchen/test.git
git pull
拉去远程仓库的代码,默认对应相同的分支1
2
3
4
5
6
7
8
9
10
11
12yangchen@yangchendeMacBook-Pro mellower_store % git pull
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 6), reused 0 (delta 0)
展开对象中: 100% (8/8), 755 字节 | 53.00 KiB/s, 完成.
来自 47.100.8.218:mellower/mellower_store
6b013c97..3043c0a0 master -> origin/master
更新 6b013c97..3043c0a0
Fast-forward
config/aliyunsms.php | 4 ++--
config/services.php | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)git add
添加指定目录到暂存区,包括子目录
git add [dir]
例如:添加2个文件到暂存区
git add README index.php
添加当前目录下的所有文件到暂存区
git add .
git commit
将暂存区内容添加到本地仓库中git commit -m "提交内容备注"
1
2
3
4yangchen@yangchendeMacBook-Pro monster % git add .
yangchen@yangchendeMacBook-Pro monster % git commit -m "这是一次测试提交"
[master 92f3b10] 这是一次测试提交
1 file changed, 7 insertions(+), 12 deletions(-)git reset
回滚代码,撤销某一次commit,并强推到远程仓库
如果需要删除的 commit 是最新的,那么可以通过 git reset 命令将代码回滚到之前某次提交的状态,但一定要将现有的代码做好备份,否则回滚之后这些变动都会消失。具体操作如下:
1
2
3
4
5git log //查询要回滚的commit_id
git reset --hard commit_id //HEAD就会指向此次的提交记录
git push origin HEAD --force //强制推送到远端回退所有内容到上一个版本
git reset HEAD^
1
2
3yangchen@yangchendeMacBook-Pro monster % git reset HEAD^
重置后取消暂存的变更:
M app/Utilities/WeiXin.php回退 index.php 文件的版本到上一个版本
git reset HEAD^ index.php
回退到指定版本
查看提交日志,回退到指定commit_id1
2git log
git reset --hard commit_id
git branch
新建分支
git branch 新建的分支名
查看所有分支信息
git branch
删除分支
git branch -d 分支名称
删除分支前,需要切换到其他分支删除远程分支
git push origin --delete 远程分支名称
git status
查看当前分支状态
1
2
3
4
5
6
7
8
9
10yangchen@yangchendeMacBook-Pro monster % git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git restore <文件>..." 丢弃工作区的改动)
修改: app/Utilities/WeiXin.php
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")git checkout
切换分支
1
2
3
4
5
6yangchen@yangchendeMacBook-Pro mellower_store % git checkout dev
切换到分支 'dev'
您的分支与上游分支 'origin/dev' 一致。
yangchen@yangchendeMacBook-Pro mellower_store % git branch
* dev
mastergit push
将本地的 master 分支推送到 origin 主机的 master 分支
git push origin master
如果关联的远程分支名和本地分支名一致,则可以省略分支名
git push
本地版本与远程版本有差异,但又要强制推送可以使用 –force 参数
git push --force origin master
完整操作
这样我们就把新建的index.php文件提交到了gitlab仓库中了
文中如有错误,请帮忙指正!谢谢!
感谢大家能认真阅读这篇文档,万分感谢!