Git版本控制、分支策略与代码评审

Git版本控制、分支策略与代码评审

Git介绍

  • Git是一种免费的、开源的分布式版本控制系统(DVCS)
  • Git是目前使用最为广泛的版本控制系统
  • Git是由Linus Torvalds开发的 (这位IT界的大神同时也是Linux的作者)
  • Git的第一个版本(v0.99)在2005年7月发布,最新版本是v2.17(截止2018年4月)
  • Git支持Windows, Linux/Unix, Mac
  • 和商业版本控制系统相比,Git免费、开源且更强大、稳定、快速
  • 和传统版本控制系统(比如CVS, SVN)相比,Git具有支持轻量级分支、分布式开发、高性能等优点。
  • Git支持命令行操作,可以非常方便地集成到CI/CD pipeline中

参考文档:

  • https://en.wikipedia.org/wiki/Git

  • Git官网: https://git-scm.com

Git工具与代码托管网站

在Windows上安装使用Git

登录Git官网: https://git-scm.com/ 下载Git for Windows,安装后有3个程序:

  • Git Bash (模拟Linux终端)
  • Git CMD (Windows终端)
  • Git GUI (Windows界面)

推荐使用Git Bash,Git CMD和Git GUI可以忽略。

在Linux/Unix和Mac上使用Git和在Windows上使用Git Bash一样,不再赘述。

IDE支持Git

现在主流的IDE(比如Intellij Idea和Eclipse) 都对Git有非常好的支持。

推荐通过IDE + Git Bash 方法来使用Git。

代码托管网站

如何选择?

  • 土豪自己搭建GitHub Enterprise
  • Atlassian铁粉用BitBucket
  • 中产用GitLab Enterprise
  • 屌丝自己搭建GitLab CE (我是屌丝我自豪)
  • 最屌丝用国内的代码托管网站…

Git原理

Git工作流

下图列出了一个简明的Git工作流:

这里写图片描述

Git 分支

概述
  • 分支(branch)可以理解为是仓库(repository)的一种隔离视图。

  • 分支的目的为了支持多人、多版本开发。

  • Git支持多分支开发,并鼓励使用本地多分支,这些分支之间是彼此完全独立的。

  • 和传统的版本控制工具(比如CSV, SVN)相比,Git对分支的隔离是逻辑隔离而不是物理隔离,这意味着创建分支非常快速、存储分支不会占用过多磁盘空间

  • 常见的分支操作包括:创建分支、切换分支、合并分支、删除分支。

参考文档:

  • https://git-scm.com/about/branching-and-merging
理解如何使用Git分支

这里以GitHub Flow为例 来演示常见的分支操作。

打开GitHub Flow ,点击动画上的不同区域来理解常见的分支操作:

  1. 创建分支

    • 给分支名取一个简短且有意义的名字
  2. 提交改动

    • 填写有意义的commit message: what & why

    • 推荐的commit message格式为 <Item Id>: <Description> ,比如:

      512: 增加了对NFS的支持

  3. 发起合并请求

    • 同时发起code review和讨论
    • 不经过review的代码不允许合并进public branch
  4. 代码评审和讨论

    • 审查代码是否满足功能、规范、测试结果、测试覆盖等要求
    • 审查合格才允许合并合进public branch,不合格的代码退回重新修改
    • 鼓励使用同行评审(Peer Review)而不是上下级评审,鼓励积极反馈、互动
    • 评审对事不对人,多建议,不批评,不指责
    • 评审过程对reviewer和代码提交者双方都是一个学习提升的过程
  5. 部署

    • 使用经过完整测试的分支来部署到生产环境
    • 部署后发生问题需要回退时,用上一个版本进行回退
  6. 合并回master分支

    • 部署成功,没有问题后才合并到master分支

GitHub Flow是一种非常好的Git分支策略,但不是唯一的Git分支策略。

在后面的分支策略中会对Git分支策略作深入探讨。

Git常用命令

参考文档

  • git no deep shit: http://rogerdudler.github.io/git-guide/
  • 常用Git命令清单(阮一峰): http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
  • git操作规范(Miss_Ye): https://segmentfault.com/a/1190000014461898

除了查看网上的参考文档之外,还可以在Git Bash中执行git --helpgit <command> --help 来查看Git帮助文档。

Git使用场景

下面列出常用的Git使用场景。

场景1: 在GitLab上新建一个repository

如果不想让公众都能看到你的代码,需要将repository设置为private,并将相应权限授给团队成员。

强烈推荐为每个repository创建README.md和.gitignore文件。

强烈推荐对repository的public branch进行保护,只有通过merge request才能合并代码进public branch。

场景2:将GitLab上一个repository clone到本地

GitLab支持SSH和HTTP(S)两种方式。

  • SSH方式需要将本地的SSH public key添加到GitLab账号的setting中
  • HTTP(S)方式第一次push到GitLab时需要提供用户名和密码登陆

设置git config的user.nameus

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值