GitHub、GitLab、Git 操作的一些规范

1,575 阅读4分钟

GitHub、GitLab、Git 操作的一些规范


不规范的 commit message 导致填写内容随意、质量参差不齐,可读性低亦难以维护。

分支规范

  • master分支为主分支(保护分支),不能直接在master上进行修改代码和提交
  • develop分支为测试分支,所有开发完成需要提交测试的功能合并到该分支
  • production分支为生产分支,所有测试完需要提交生产的功能合并到该分支
  • feature分支为开发分支,大家根据不同需求创建独立的功能分支,开发完成后合并到develop分支
  • fix分支为bug修复分支,需要根据实际情况对已发布的版本进行漏洞修复

Commit 格式规范

提交格式:type(scope):subject

type:用于说明commit的类别,规定为如下几种 :

  • feat:新增功能;

  • fix:修复bug;

  • docs:修改文档;

  • refactor:代码重构,未新增任何功能和修复任何bug;

  • build:改变构建流程,新增依赖库、工具等(例如webpack修改);

  • style:仅仅修改了空格、缩进等,不改变代码逻辑;

  • perf:改善性能和体现的修改;

  • chore:非src和test的修改;

  • test:测试用例的修改;

  • ci:自动化流程配置修改;

  • revert:回滚到上一个版本;

    示例 enter description here
    enter description here
    enter description here
    enter description here

Ignore 规则

  • 忽略文件中的空行或以井号(#)开始的行将会被忽略。

  • 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。

  • 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。

  • 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。

  • 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

Stash 和 Pop

相关命令

git stash 将工作区隐藏

git stash list 获取隐藏工作区列表

git stash pop 获取最上面一个隐藏工作区代码并删除

git stash apply 获取最上面一个隐藏工作区代码,但不删除

git stash drop  删除最上面一个隐藏工作区代码

git stash apply stash@{0} 获取指定位置的隐藏工作区代码

常见的问题

1. 如何恢复已经删除掉的分支?

在记得提交号的情况下,可以使用 git reset –hard id的方式来将指针指向已删除的分支内容。如果提交号不记得的情况下,也是有办法恢复已删除的分支的。首先通过git reflog来获取近期的每一次命令,然后查找删除分支最近的一次提交,找到提交号,则又可以顺利的取回分支内容。

2.当下正在进行dev代码开发,突然来了生产bug1.0需要及时修复,但是dev下开发的代码又没提交,这个时候该如何操作?

先通过git stash 将当前工作区代码隐藏到栈中,保存临时状态。再切出一个fixbug分支来解决问题,当问题解决后,通过git stash pop取回隐藏到栈中的工作区代码,继续dev的开发。通过git stash pop命令取回工作区代码的同时,还会将栈中之前推进去的代码删除。git stash list是查看所有临时工作区代码。也可以通过git stash apply stash@{0}来精确恢复栈中的代码。

3. 如何解决冲突问题 使用命令提交出现冲突的问题

只能是用第三方软件compare软件,比较两个文件的区别来进行修改。

使用界面提交出现的冲突问题 enter description here

  • 采用当前更改:保留当前,舍弃远端
  • 采用传入的更改:舍弃当前,保留远端
  • 保留双方更改:在对应位置保留双方
  • 比较更改:对比文件,进行修改

总结

编码规范、流程规范在软件开发过程中是至关重要的,它可以使我们在开发过程中少走很多弯路。Git commit规范也是如此,确实也是很有必要的,几乎不花费额外精力和时间,但在之后查找问题的效率却很高。作为一名程序员,我们更应注重代码和流程的规范性,永远不要在质量上将就。