如何有效地审查现有的git合并?

时间:2014-03-12 01:14:14

标签: git merge git-merge

我想查看git merge commit,了解已经完成并推送到服务器的合并。

我的团队最近有几次工作(暂时)因合并错误而丢失。我们不清楚我们是否正在错误地执行合并,或者我们是否在合并期间修复了错误的解决冲突。我想密切关注我们的团队合并一段时间,以确保一切都是copacetic;但我不知道使用git或相关工具来有效地做到这一点。

我最接近的是' gitk'工具。当我查看该工具中的合并节点时,差异视图似乎显示了所需的信息,但我发现很难快速了解一个特定的合并结果是来自父A,父B还是来自冲突 - 解决问题。 (那被称为补丁吗?)

我拥有Beyond Compare的副本,它具有合并演示模式,但是当我使用&gtt; mergetool'它似乎只想处理当前的合并 - 我不知道如何从git历史中提供它。

请告诉我如何更有效地使用我拥有的工具,和/或我可以使用哪些其他工具来使这些评论易于管理。

2 个答案:

答案 0 :(得分:1)

我听说Tower非常好。

您可以使用github的比较功能来比较提交,标签甚至分支。如GitHub

所示
Compare View URLs

We wanted Compare View to be something we could link to from external sites and services anytime we were referring to a range of commits in a git repository. As such, we thought it would be worthwhile to document the basic structure of a Compare View URL:

    http://github.com/<USER>/<REPO>/compare/[<START>...]<END>

Where <USER> and <REPO> are obvious, and <START> and <END> are branch names, tag names, or commit SHA1s specifying the range of history to compare. If <START> is omitted, the repository's default branch is assumed

至于更有效的分支方法,我建议使用它。我曾经在一些创业公司工作过 - &gt; http://nvie.com/posts/a-successful-git-branching-model/

答案 1 :(得分:1)

您可以将合并与任一父级进行区分:

git diff <1st-parent-hash> <merge-commit-hash>
git diff <2nd-parent-hash> <merge-commit-hash>

或使用第一/第二父语法。如果合并提交是abc123:

git diff abc123^1 abc123
git diff abc123^2 abc123