分布式版本控制Git
承接上一篇
Git服务器
- C/S架构的Git服务器
- 是存放代码的公用平台
- 是多人并行协作的核心部分
- 通常单独部署在一台独立的服务器上
- 客户端可以通过网络访问服务器上的仓库
- 类似共享文件/共享yum源
常用的Git服务器
-
GitHub
是一个基于git实现的在线托管代码的仓库 , 向互联网开放 , 企业版收费(诸多开源资源可以在此网站下载) -
Gitee
即码云 , 是Oschina公司免费给企业使用的公用代码托管平台 , 不需要自己搭建环境.(Gitee , 支持创建仓库 , 白嫖开源软件 , 支持md文件在线观看) -
GitLab
类似于GitHub , 一般用于企业内部搭建Git似有服务器 , 需要自己搭建
GitLab简介
GitLab
基于Ruby on Rails开发 , 速度快 , 安全稳定 , 部分程序已经用GO语言重写GitLab
与GitHub
的功能类似 , 能够浏览源代码 , 管理缺陷和注释- 可以管理团队对仓库的访问 , 非常易于浏览提交过的版本并提供一个文件历史库
- 提供一个代码片段收集功能可以实现代码复用 , 便于日后有需要时进行查询
GitLab EE
企业版GitLab CE
社区版GitLab
相关站点- 官网 : https://gitlab.com/
- 中文社区版 : https://gitlab.com/xhang/gitlab/
- 清华站 (推荐): https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
GitLab的搭建
-
安装依赖包
yum clean all
//清理yum缓存yum -y install policycoreutils-python-utils.noarch
//安装包
-
安装GitLab包
gitlab-ce-12.4.6-ce.0.el7.x86_64.rpm
rpm -ivh --nodeps --force gitlab-ce-12.4.6-ce.0.el7.x86_64.rpm
//忽略依赖强制安装rpm -qa | grep gitlab
//确认安装
-
重新加载GitLab配置
gitlab-ctl reconfigure
-
重新启动GitLab相关服务
gitlab-ctl restart
#重启GitLab相关服务
[root@GitLab ~]# gitlab-ctl restart
ok: run: alertmanager: (pid 1975) 0s //报警服务
ok: run: gitaly: (pid 1986) 1s //Git后台服务
ok: run: gitlab-exporter: (pid 2014) 0s //Prometheus数据采集器
ok: run: gitlab-workhorse: (pid 2020) 1s //反向代理服务器
ok: run: grafana: (pid 2117) 0s //数据可视化服务
ok: run: logrotate: (pid 2129) 0s //日志文件管理服务
ok: run: nginx: (pid 2135) 1s //静态WEB服务
ok: run: node-exporter: (pid 2142) 0s //Prometheus数据采集器
ok: run: postgres-exporter: (pid 2148) 1s //Prometheus数据采集器
ok: run: postgresql: (pid 2159) 0s //数据库服务
ok: run: prometheus: (pid 2168) 0s //Prometheus监控服务
ok: run: redis: (pid 2178) 1s //缓存数据库服务
ok: run: redis-exporter: (pid 2183) 0s //Prometheus数据采集器
ok: run: sidekiq: (pid 2192) 0s //异步执行队列服务
ok: run: unicorn: (pid 2203) 0s //Rails托管WEB服务
GitLab的使用
GitLab初始化
-
GitLab主机确认80端口被监听
ss -anptul | grep :80
-
浏览器访问: http://localhost/ (GitLab服务器的IP地址)
-
首次访问页面情况如图
-
管理员用户设置为root
-
需要设置root用户密码 , 密码有强度需求 , 这里设为1234.com
-
-
填写完初始化密码后点击确认 , 页面跳转到登陆页
-
用户名 : root , 密码 : 1234.com , 登陆
-
-
登陆后展示GitLab仪表盘 , 页面默认为英文 , 可以设置中文 , 但程度有限
-
-
点击右上角用户旁的小三角选择
Settings
, 进入用户设置页面 -
-
进入设置页面后左边倒数第三个
Preferences
选项 , 选择语言改成中文后 , 保存退出重新登录 -
-
GitLab用户管理
-
点击左上角的扳手图标 ,进入仪表盘管理页面
-
-
选择New user 创建新用户
-
-
进入用户创建页面 , 填写
真实姓名
,Gitlab用户名
,用户邮箱
(上一篇设置了git的用户名和邮箱 )https://blog.csdn.net/2401_82773077/article/details/135780145?
-
-
页面弹出用户创建成功提示信息 , 点击右侧Edit设置用户密码
-
-
跳转至用户信息编辑页面 , 找到Password部分 , 添加密码 , 这里设置的是
1234.com
-
-
点击最下方保存后 , 页面弹出用户已成功更新信息 ,
szhou
初始密码设置成功后 , 后续使用szhou
用户登录时首次会要求修改密码 -
-
登录root用户 , 点击扳手回到仪表盘页面 , User数量更新为2 , 下方有新建的用户
-
GitLab组管理
-
点击
Groups
下的New group
创建组 -
-
页面跳转至新建群组页面 , 组名填写
devops
, URL路径自动生成 , 群组描述信息选填 , 可见性级别选择公开 , 方便后续操作 -
-
新创建群组页面点击下方创建按钮跳转至下面的页面 , 右侧可以设置群主成员 , 将之前创建的
szhou
用户以主程序员身份maintainer
加入群组 , 右侧的编辑按钮可以修改群组设置- 常用的组名 :
guest
: 老板reporter
: 测试工程师developer
: 开发者maintainer
: 开发经理 , 项目负责人owner
: 运维组同事
- 常用的组名 :
-
GitLab项目管理
-
点击扳手进入仪表盘管理页面 , 点击
New project
创建新项目 -
-
页面跳转至项目信息页 , 填写项目名称
myproject
, 项目标识串与名称一致 , 无需手工填写 , 项目归属有默认的root用户调整为devops
组 . 项目描述信息选填 , 公开级别选择公开 -
-
点击创建项目后页面跳转至本页面 , 上方有项目创建成功的信息 , 点击右侧克隆按钮 , 弹窗中提示项目地址 , 上方有SSH公钥设置提醒 , 如选择HTTP方式忽略即可.下方有命令提示 , 可参考命令关联客户端与服务器
-
-
根据客户端情况选择参考命令 , 分新建仓库 ,推送文件夹 , 推送Git仓库三种
-
代码托管
关联Programer主机myproject仓库与GitLab服务器上myproject项目
- 查看远程仓库关联
git remote -v
- 关联项目
git remote add origin http://192.168.88.20/devops/myproject.git
- 删除项目
git remote remove origin
- 推送本地仓库所有分支
git push -u origin --all
- 输入创建的账户 , 密码
- 推送本地仓库所有标签
git push -u origin --tags
- 输入创建的账户 , 密码
- 登录
GitLab
项目管理页面查看推送情况- 完整Git客户端与服务端关联后 , 确认分支推送情况和标签推送情况 , 下方会展示出文件列表 , 支持在线查看内容
HTTP方式免密推送
- 每次推送都需要认证 ,可以设置免密推送
cache
: 默认缓存15分钟 , 期间无需认证 , 可以用过追加--timeout=3600
设置超时时间store
: 永久存储git config --global credential.helper store
持久保存git push
(需要认证一次 , 之后就不用认证了 , 系统自动读取~/.git-credentials
取用户名和密码)