设为首页 收藏本站
查看: 572|回复: 0

[经验分享] 快速上手git gitlab协同合作

[复制链接]

尚未签到

发表于 2018-1-11 10:24:28 | 显示全部楼层 |阅读模式
  简单记录,整理。
摘要
  为方便大家快速上手Git,并使用Gitlab协同合作,特编写此手册,手册内容不会太丰富与深入。
  主要包含如下内容:

  • Git 使用教程  1.1 安装
      1.2 常用命令
      1.3 版本控制
      1.4 分支与tag
  • Gitlab 使用教程  2.1 界面简介
      2.2 常用功能介绍
      2.3 注意事项
  • 多人协作流程与规范  3.1 永久与临时分支
      3.2 工作流图
      3.3 规范
  • Code Review  4.1 为什么要有Code Review
      4.2 如何进行?
  •   参考资料
      后续会加入CI,自动部署等。
1. git 使用教程
1.1 安装
  建议安装最新版本,及1.7以上。
  下载地址:Git下载页面
  官方安装教程:安装教程
1.2 常用命令
  在Linux和Mac下直接用终端操作即可;Windows下需要右键打开 “git bash”进行操作。
  使用公司的gitlab库,需要忽略验证证书合法性
  git config http.sslVerify false
  a. 克隆代码库至本地
  地址在gitlab.xsjcs.cn项目中获得,请选择https 地址
  git clone https://gitlab.xsjcs.cn/powerking/log-sever.git
  b. 修改文件并提交
  git add file-name
  git commit -m "注释"
  注释一定要详细,不能是”test”,”update”之类的。并尽量采用英文说明。
  c. 推送到远程分支,默认是所有
  git push
  d. 推送至主分支
  git push origin master
  更多命令请参考:
  Git命用命令
  Git命令速查
1.3 版本控制
  通常我们在本地提交代码库是git add && git commit 命令,在需要提交到远程时才使用git push 。
  因此git 的版本控制分为2块。本地和远程。
  在本地命令操作中,还可以采用git reset HEAD 来撤销提交,以及git checkout 来恢复文件。
  因此git 文件夹存在三个区域:
  实际目录:实际修改的文件。
  待提交区:暂存准备提交的内容,提交之后被清空。(也叫做index区)
  已提交区:提交到本地git版本库的内容,有版本号。
  对这三个区域的操作都可以在本地离线完成。
  同时可以通过git status查看文件状态
  文件总共四种状态:
  与git repository一致
  与git repository不一致,已缓存
  与git repository不一致,未缓存
  还未添加到git repository
  通常我们在本地操作完成后,会提交到远程的自己的分支,或开发分支。因此就涉及分支的知识。
1.4 分支与tag
  分支是用来将特性开发分开来的,在创建仓库时,master是默认主干。通常我们还会创建一个开发分支”Develop”,以及一个测试分支”testing”。每个开发人员需要开发新功能时,在本地再创建一个自己的分支”feature_a”,然后再将分支提交测试或开发,由相关人员测试并审核通过后,merge到主干。
  创建一个feature_a 的分支,并切换到该分支:
  git branch feature_a
  git checkout feature_a
  切换回主:
  git checkout master
  查看本地分支列表:
  git branch -a
  删除分支:
  git branch -d feature_a
  合并分支
  合并分支前通常需要使用git diff查看提交的版本差异。在gitlab界面有diff界面可以帮助我们查看。如果没有异常可以配置自动合并,如果自动合并报冲突时,需要手动操作。
  git add 标记相关信息
  git merge 合并其它分支到当前分支,合并前需要先确认当前分支。
2. gitlab 使用教程
  Gitlab界面比较简洁,目前公司配置的gitlab不支持ssh方式。只能采用http(S)进行。但用户注册后,需要配置个人信息,特别是头像。建议都配置。
2.1 界面简介
  貌似这个没啥好写的,特别个人头像即可。
2.2 常用功能介绍
  创建Groups : 通常我们会给一个项目创建一个组。比如:网管中心、xoyobox、运维小组开发工具。
  创建User: 目前开放注册,后续需要邮件申请。
  将用户加入组:在创建组后,可以选择将不同的用户加入组进行协同开发。
  创建Project: 项目可以选择归属那个组,在创建时,也可以选择导入。创建后,初始化信息注册选择http(s)协议。
2.3 注意事项
  由于公司配置https 证书没有购买,当前还没有申请免费的key,所以需要配置忽略验证证书合法性:
  git config http.sslVerify false
  更多使用可参考:如何使用Gitlab
3. 多人协作流程与规范
  为避免2个或多个人同时修改一个功能,或开发一个新的feature,需要有严格的规范或流程进行约束。
  因此我们需要创建永久分支与临时分支。
3.1 永久与临时分支
  永久分支:master develop testing
  临时分支:在开发或发布时创建,使用一段时间后删除。
  master: 主干分支,线上发布的稳定版本。以偶数为版本号。
  develop:开发分支,将测试完成,或不需要测试的分支一起merge至master。发布时,以奇数为版本号。
  testing:测试分支,供前期测试使用的分支,可以不加版本号。
  几个重要的说明:
feature
  作用:开发新功能
  分支来源:develop
  结束时:merge develop
  说明:特性分支,用来为下一个版本开发新特性。一般只存在开发者本地。
release
  作用:发布新版本
  分支来源:develop
  结束时:merge develop / master
  说明:为新产品发布是做支持,一般用于发版,线上环境更新。需要有一定的版本更新说明,bugfix说明,等。提取出来后,只允许小的修改,不允许再增加新的feature。
hotfix
  作用:修复发行版本的bug
  分支来源:master
  结束时:merge develop / master
  说明:打补丁
3.2 工作流图
  见图
3.3 规范
  约定:

  • master分支中的任何版本都可以立即部署
  • 每次master变更都来自其它分支的master合并操作
  • 对master修改必须要有review
  • 不允许存在奇数版本
4. code review
4.1 为什么要有code review
  不觉明厉
4.2 如何进行?

  • 建议在gitlab界面进行
  • 提交代码时需要注册分支及版本号
  • 使用本地git flow 进行合并操作
5. 参考资料
  Github-flow
  Git_Gitlab

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-433833-1-1.html 上篇帖子: gitlab备份、还原及迁移 下篇帖子: gitlab安装配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表