[关闭]
@kezhen 2016-06-07T16:35:08.000000Z 字数 1851 阅读 1341

团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。

关于工具

打开终端,执行下列命令配置对比工具。

  1. ln -s /Applications/Beyond\ Compare.app/Contents/MacOS/bcomp /usr/local/bin/

关于 rebasemerge

merge
团队的开发模式是本地的branch和远端的branch会同步地非常频繁,这两个branch几乎是完全同步。这时候就会发现这些merge动作其实没有必要,会造成线图错综复杂。

Rebase大致操作:
- 1. 把本地的repo从上次 pull 之后的的变更暂存起來
- 2. 返回到上次 pull 时的情況
- 3. 套用远端的变更
- 4. 最后再套用刚才暂存下来的变更。

合并之前示意图:

  1. D---E master
  2. /
  3. A---B---C---F origin/master

使用 merge 合并示意图:

  1. D--------E
  2. / \
  3. A---B---C---F----G master, origin/master

使用 rebase 的方式,就不會有 G 合并点:

  1. A---B---C---F---D'---E' master, origin/master

注意到,其中 D’, E’commit SHA 序号跟本來 D, E 是不同的,因為算是砍掉重新 commit 了。

关于使用时遇到conflict的情况:
merge 如果发生 conflict,你只需要解決衝突一次;rebase 如果发生 conflict,你需要解决冲突多次。


分支策略

Master

master:代码库应该有且只有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。
m

Git主分支的名字,默认叫做master


Develop

develop:日常开发分支,干活都在dev分支上。
d

如果想正式对外发布,就在master分支上,对develop分支进行"合并"(merge)。


Fix

fix:软件正式发布以后,难免会出现bug。这时就需要创建一个分支进行bug修补。
fix

修补bug分支是从master分支上面分出来的。修补结束以后,再合并进masterdevelop分支。它的命名,可以采用fixbug-*的形式。


Feature

feature:功能分支,它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop并删除该分支。
f

功能分支的名字,可以采用 feature-*的形式命名。


所以,团队合作的分支看起来就像这样:
3


Commit规范

1.格式

<type>(<scope>): <subject>
<空行>
<body>
<空行>
<footer>

2. Type

3. Scope

用来说明本次Commit影响的范围,即简要说明修改会涉及的部分。

4. Subject

用来简要描述本次改动,概述就好了,因为后面还会在Body里给出具体信息。并且最好遵循下面三条:
- 以动词开头,使用第一人称现在时,比如change,而不是changed或changes
- 首字母不要大写
- 结尾不用句号

5. Body

<body> 里的内容是对上面subject里内容的展开,在此做更加详尽的描述,内容里应该包含修改动机和修改前后的对比。

footer 里的主要放置不兼容变更和Issue关闭的信息。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注