7.gitlab仓库 (社区版)
1.gitlab是一个开源仓库,社区版ce 企业版ee(基于git基础上开发。)
2.github创建私有仓库收费,网络较差。
3.码云 —> 收费 创建私有仓库最多5个人协同开发。
公司一般选择 gitlab
个人开源项目 github gitee
4.安装gitlab
安装包下载网址
https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
上传安装包,rpm是安装包,gz包是汉化包
本地安装rpm包
#安装依赖参考官网
https://gitlab.cn/install/
[root@gitlab ~]# yum install -y curl policycoreutils-python openssh-server postfix
[root@gitlab ~]# systemctl enable postfix
[root@gitlab ~]# systemctl start postfix
[root@gitlab ~]# yum localinstall gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm -y
5.配置gitlab
1.备份gitlab配置文件
[root@gitlab ~]# cp -v /etc/gitlab/{gitlab.rb,gitlab.rb_bak}
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
2.修改gitlab访问的url
external_url 'http://gitlab.quyunlong.com'
3.关闭一些没有用程序
prometheus['enable'] = false
prometheus_monitoring['enable'] = false
4.配置邮箱
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = "918631511@qq.com" # 发件邮箱
gitlab_rails['gitlab_email_display_name'] = 'Quyunlong-GitLab' # 发件人显示名称
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "918631511@qq.com" #发件人邮箱账户
gitlab_rails['smtp_password'] = "ghyugobevgclbcfd" #发件人邮箱客户端授权码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
qq邮箱获取授权码
6.初始化gitlab
[root@gitlab ~]# gitlab-ctl reconfigure
7.启动gitlab
已经运行
配置本地hosts文件域名解析
测试成功
web浏览器访问域名
http://gitlab.quyunlong.com
8.访问gitlab,然后配置root密码
123456.com
登录之后
9.汉化gitlab 翻译
1.停止gitlab
[root@gitlab ~]# gitlab-ctl stop
2.替换语言包
[root@gitlab ~]# tar xf gitlab-12-0-stable-zh.tar.gz
[root@gitlab ~]# \cp -r gitlab-12-0-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/
3.重新加载gitlab
[root@gitlab ~]# gitlab-ctl reconfigure
4.启动gitlab
[root@gitlab ~]# gitlab-ctl start
5.选择右上角--->setttings---》Preferences -->Language
10.gitlab中用户 用户组 项目 之间的关系 配置 验证 (邮件) —》权限?
1.创建组 dev
2.基于组 创建 5个项目 dev-1 dev-2 dev-3 dev-4 dev-5
3.创建用户 将用户加入dev组,此时用户就能看到对应的5个项目
4.至于用户到底有什么权限,取决于添加用户时给分配的权限
创建群组
创建私有项目
创建用户之后直接去该邮箱查看会收到邮件进行设置密码登录即可
将创建好的用户添加到群组里面
创建共有项目
在系统提交一些数据测试查看
git remote -v
git remote remove origin
git remote add origin http://gitlab.quyunlong.com/new-group/project-1.git
git push -u origin --all
git push -u origin --tags
数据提交gitlab仓库
提交成功
可以给用户所有者的绝对控制权,这样就不需要root权限
gitlab配置公钥
系统命令行查看公钥值
gitlab添加公钥值
11.gitlab创建项目?
1.本地与远程仓库的连接
2.本地推送数据至远程仓库
3.新加入的小伙伴需要协同开发? git clone 镜像代码 ---> 权限
4.新伙伴提交了代码至远程仓库
5.我这边本地拉取代码。
创建一个远程仓库,本地进行连接
本地清除远程连接远程仓库
git remote -v #查看连接远程仓库信息
git remote remove origin #清除远程origin仓库连接信息
git remote add origin git@gitlab.quyunlong.com:new-group/dsb.git #添加远程仓库连接
git add . #工作目录提交到暂存区
git commit -m "Initial commit" #暂存区提交到本地仓库区域
git push -u origin master #本地仓库提交到远程仓库区域
本地仓库提交远程仓库不需要验证。是由于gitlab配置了ssh公钥值
已经提交成功
新建一台机器测试其他人进行测试
1.系统生成ssh公钥,复制到所有者权限的用户到gitlab系统上
ssh-keygen #生成密钥对
cat ~/.ssh/id_rsa.pu #查看公钥值
2.登录所有者权限的用户将公钥值添加到gitlab的web界面上
3.本地创建一个仓库
#镜像仓库到本地
git clone git@gitlab.quyunlong.com:new-group/dsb.git
cd 路径 #到克隆下来的路径下
touch README.md #新增文件
git add README.md #工作区提交到暂存区
git commit -m "add README" #暂存区提交到本地仓库
git push -u origin master #本地仓库提交远程仓库
10.gitlab备份,恢复? 升级 10 --》11—》 12
1.备份gitlab
[root@gitlab ~]# gitlab-rake gitlab:backup:create
2.额外需求
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #控制备份后的产物放在哪里
# gitlab_rails['backup_keep_time'] = 604800 #保留多久的数据
[root@gitlab ~]# gitlab-ctl reconfigure #修改配置文件后要重新初始化
3.如果希望每天都备份,可以使用crond服务来实现。
4.不小心误操作删除了几个项目,现在该如何恢复
#停止这两个服务sidekiq、unicorn
[root@gitlab ~]# gitlab-ctl stop sidekiq
[root@gitlab ~]# gitlab-ctl stop unicorn
#根据备份的压缩包的时间戳进行恢复
[root@gitlab ~]# gitlab-rake gitlab:backup:restore BACKUP=1567240183_2019_08_31_12.0.3
#重启gitlab服务
[root@gitlab ~]# gitlab-ctl restart