私有远程仓库Gitlab
私有远程仓库Gitlab
Gitlab介绍
- 私有代码仓库,除了Gitlab还有gogs
- 精细化的权限配置
- 控制用户/用户组权限,避免任何用户都可以将代码提交master
Gitlab的架构
部署Gitlab-ce
# 使用清华源,直接安装
[root@gitlab ~]# yum install -y https://mirrors.tuna.tsinghua.edu.cn/gitlabce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
[root@gitlab ~]# yum localinstall -y gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
# 安装过程
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
# 1.修改配置文件
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.wc.com'
# 添加邮箱相关配置
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '2794552827@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'wc gitlab notice'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "2794552827@qq.com"
gitlab_rails['smtp_password'] = "dizyzzjjujhxdefe"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
prometheus['enable'] = false
prometheus['monitor_kubernetes'] = false
prometheus_monitoring['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_monitor['enable'] = false
grafana['enable'] = false
alertmanager['enable'] = false
# 2.重新加载配置文件
[root@gitlab ~]# gitlab-ctl reconfigure
Chef Client finished, 299/430 resources updated in 02 minutes 28 seconds
gitlab Reconfigured!
Gitlab操作
# 查看当前服务状态
[root@gitlab git]# gitlab-ctl status
# 停止所有服务
[root@gitlab git]# gitlab-ctl stop
# 启动所有服务
[root@gitlab git]# gitlab-ctl start
# 重启所有服务
[root@gitlab git]# gitlab-ctl restart
# 停止指定服务
[root@gitlab git]# gitlab-ctl stop nginx
# 启动指定服务
[root@gitlab git]# gitlab-ctl start nginx
# 查看Gitlab所有组件日志
[root@gitlab git]# gitlab-ctl tail
# 查看Gitlab指定组件日志
[root@gitlab git]# gitlab-ctl tail nginx
# 连接Gitlab终端
[root@gitlab git]# gitlab-rails console
# 测试发邮件
irb(main):012:0> Notify.test_email('1627556442@qq.com','sbsbsb','hei/hei/hei').deliver_now
# 忘记root密码
[root@gitlab git]# gitlab-rails console
## 登录root用户
irb(main):011:0> user = User.where(id: 1).first
irb(main):012:0> user.password='123456789'
irb(main):012:0> user.password_confirmation='123456789'
irb(main):012:0> user.save
Gitlab汉化
汉化官网:TP
# 1.下载汉化包
[root@gitlab ~]# wget https://gitlab.com/xhang/gitlab/-/archive/10-2-stable-zh/gitlab10-2-stable-zh.tar.gz
# 2.解压汉化包
[root@gitlab ~]# tar xf gitlab-10-2-stable-zh.tar.gz
# 3.停止所有服务
[root@gitlab ~]# gitlab-ctl stop
# 4.覆盖
[root@gitlab ~]# \cp -a gitlab-10-2-stable-zh/* /opt/gitlab/embedded/service/gitlabrails/
# 5.重新加载配置文件
[root@gitlab ~]# gitlab-ctl reconfigure
# 6.启动所有服务
[root@gitlab ~]# gitlab-ctl start
创建项目
HTTP命令行指令
Git 全局设置
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
创建新版本库
git clone http://gitlab.zls.com/root/linux2.git
cd linux2
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
已存在的文件夹
cd existing_folder
git init
git remote add origin http://gitlab.zls.com/root/linux2.git
git add .
git commit -m "Initial commit"
git push -u origin master
已存在的 Git 版本库
cd existing_repo
git remote rename origin old-origin
git remote add origin http://gitlab.zls.com/root/linux2.git
git push -u origin --all
git push -u origin --tags
SSH命令行指令
Git 全局设置
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
创建新版本库
git clone git@gitlab.zls.com:root/linux2.git
cd linux2
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
已存在的文件夹
cd existing_folder
git init
git remote add origin git@gitlab.zls.com:root/linux2.git
git add .
git commit -m "Initial commit"
git push -u origin master
已存在的 Git 版本库
cd existing_repo
git remote rename origin old-origin
git remote add origin git@gitlab.zls.com:root/linux2.git
git push -u origin --all
git push -u origin --tags
添加git远程仓库
# 1.添加远程仓库
[root@gitlab web]# git remote add zls git@gitlab.zls.com:root/linux2.git
# 2.添加hosts解析
[root@gitlab web]# vim /etc/hosts
10.0.0.91 gitlab.zls.com
# 3.生成秘钥
[root@gitlab git]# ssh-keygen
# 4.查看公钥
[root@gitlab git]# cat ~/.ssh/id_rsa.pub
# 5.网页添加ssh秘钥
Gitlab创建用户和用户组
下载Gitlab仓库的代码
# 克隆代码
[root@gitlab opt]# git clone git@gitlab.zls.com:ops/new_linux2.git
# 同步仓库代码跟gitlab中保持一致
[root@gitlab new_linux2]# git pull
# 拉所有分支代码
[root@gitlab new_linux2]# git fetch -vp