Git Introduction and Questions

介绍Git的一些基本概念和规范。

StartTime: 2017-03-22,ModifyTime:2018-11-23

1.基本概念

  1. commit或merge发生冲突的情况解释:
    <<<<<<< HEAD
    XXXXX
    =======
    XXXXX
    >>>>>>> iss53
    

    可以看到 ======= 隔开的上半部分,是 HEAD(即 master 分支,在运行 merge 命令时所切换到的分支)中的内容,下半部分是在 iss53 分支(与自己修改内容冲突的分支)中的内容。

  2. GitHub以开源代码出名,GitLab比GitHub更方便的在于提供免费私有仓库。

2. git 分支命名规范

git 分支分为集成分支、功能分支和修复分支,分别命名为 develop、feature 和 hotfix,均为单数。不可使用 features、future、hotfixes、hotfixs 等错误名称。请注意,一个分支尽量开发一个功能模块,不要多个功能模块在一个分支上开发。

3. git commit 规范

Commit message 的格式 每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。其中,Header 是必需的,Body 和 Footer 可以省略。

Header包括 type(必需)、scope(可选)和subject(必需) :

不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。

3.1 Header

Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。

3.1.1 type

type用于说明 commit 的类别,只允许使用下面7个标识。

如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。

3.1.2 scope

scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

3.1.3 subject

subject是 commit 目的的简短描述,不超过50个字符。

以动词开头,使用第一人称现在时,比如change,而不是changed或changes。

第一个字母小写,结尾不加句号(.)

3.2 Body

Body 部分是对本次 commit 的详细描述,可以分成多行。下面是一个范例。

More detailed explanatory text, if necessary.  Wrap it to
about 72 characters or so. Further paragraphs come after blank lines.- Bullet points are okay, too- Use a hanging indent

注意两点:
(1)使用第一人称现在时,比如使用change而不是changed或changes。

(2)应该说明代码变动的动机,以及与以前行为的对比。

参考文献

Git 分支 - 分支的新建与合并

git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚

git reset soft,hard,mixed之区别深解

git 分支命名规范

Git 提交的正确姿势:Commit message 编写指南

使用git进行团队合作开发

Git的Patch功能

git 生成 patch的命令

您如果觉得有用,觉得写得还不错,可以一元赞赏作者。
   
微信捐赠图片
   
支付宝捐赠图片