确定合并的用户

时间:2016-06-20 14:00:02

标签: git

一位同事做了一个git合并。我们使用Github。我只能看到开发人员是谁做了最后的提交。有没有办法确定谁合并?

1 个答案:

答案 0 :(得分:0)

合并有两种不同的方案:

在第一个场景中,Bobby根据Commit 1进行了一些更改,但在Susie推出自己的一些更改之前没有做出更改:

Commit 1
|       \
|        Commit 2 by Susie, merged to master
|                             \
Commit 3 by Bobby on branch   |
|                            /
Commit 4 by Bobby: Merged to master

在这种情况下,当Bobby尝试将commit 3合并到master时,git确定由于更改不是线性的,因此需要进行合并提交。这个提交是用Bobby的名字自动创建的,很明显他就是这么做的。

第二种情况是快进:

Commit 1 - Head of Master
|      |
|      Commit 2 by Bobby on branch
|      |
|      Commit 3 by Bobby on branch
|     / 
Merge to master: since Bobby's base commit is still the head, fast-forward is used:

Commit 1
| 
Commit 2 - Bobby
|
Commit 3 - Bobby

快进使树看起来是线性的,Bobby分支中的所有提交看起来都像是直接在master上进行的。这个视图比较干净,但没有合并提交Bobby的名字。但是,如果您正在寻找特定的更改,Bobby的名字仍然在提交中。

由于您的dev执行了0提交合并,因此git可能会自动执行任何操作,或者使用快速转发(0次提交),这不会产生合并提交。

通用git解决方案可能是禁用快进功能,因此合并始终显示在树this SO answer will tell you what you need中。这将允许任何合并可见,但代价是看起来稍微丑陋。

或者,因为你正在使用Github,它能够Fork repos然后设置pull requests,我相信它会维护这些请求的历史记录以及方便的代码审查工具(你正在审查彼此的代码,对吧?)和合并。您需要做的就是调整您的git工作流程和程序以利用它。