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

如何有效地审查现有的git合并?,git,merge,git-merge,Git,Merge,Git Merge,我想查看git合并提交,查看已经完成并推送到服务器的合并 我的团队最近有几次因为错误的合并(暂时)失去了工作。不清楚是否执行了错误的合并,或者是否在合并过程中进行了错误的冲突解决修复。我想仔细观察一下我们的团队合并,以确保一切顺利;但我不知道如何使用git或相关工具来有效地做到这一点 我最接近的工具是“gitk”工具。当我在该工具中查看合并节点时,diff视图似乎显示了所需的信息,但我发现很难快速理解合并结果的特定块是来自父级a、父级B还是来自冲突解决修复。(这叫补丁吗?) 我拥有一个Beyon

我想查看git合并提交,查看已经完成并推送到服务器的合并

我的团队最近有几次因为错误的合并(暂时)失去了工作。不清楚是否执行了错误的合并,或者是否在合并过程中进行了错误的冲突解决修复。我想仔细观察一下我们的团队合并,以确保一切顺利;但我不知道如何使用git或相关工具来有效地做到这一点

我最接近的工具是“gitk”工具。当我在该工具中查看合并节点时,diff视图似乎显示了所需的信息,但我发现很难快速理解合并结果的特定块是来自父级a、父级B还是来自冲突解决修复。(这叫补丁吗?)

我拥有一个Beyond Compare的副本,它有一个合并表示模式,但当我使用“git mergetool”设置它时,它似乎只想处理当前的合并-我不知道如何从git历史中获取一个


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

我听说Tower非常好

您可以使用github的比较功能来比较提交、标记甚至分支。如图所示

比较视图URL 我们希望Compare View是一种可以随时从外部站点和服务链接到git存储库中一系列提交的东西。因此,我们认为有必要记录比较视图URL的基本结构: http://github.com///compare/[...] 其中和是明显的,和是分支名称、标记名称或commit SHA1,指定要比较的历史范围。如果省略,则假定存储库的默认分支
至于更有效的分支方法,我建议使用这个。我曾在几家初创公司工作过-->

你可以将合并与任何一家母公司区分开来:

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

这实际上就是我们使用的分支方法。当多人签入“开发”分支时,仍然会发生合并。我在github比较页面上查看了一个有问题的合并提交。虽然它给人留下了深刻的印象,但不幸的是,它没有向我显示我所寻找的特定错误:在合并的一个父级中引入了一个新函数,它是在两个父级的最后一个共同祖先之后添加的,但它在合并冲突解决过程中被删除(我认为)。新函数根本不显示在比较视图中;从那里无法知道该方法已在合并中删除。根据您的建议,我查看了Tower,但它是Mac-only。如何使用某些合并策略手动或自动完成合并?每当我将内容合并回master以保持干净记录时,我都会使用以下策略-->git merge-s recursive-x谢谢,我会检查一下。现在我们使用的是默认的合并策略。也许你应该检查一下你的工作流程,网上有很多建议,比如在。可能在合并后添加额外的检查,这取决于所看到的问题。我们有三个人将更改推进到一个“开发”分支中。我不认为这样一个小组会需要正式的合并过程,但看起来我错了。(我们确实有一个更正式的分支和标记过程,发生在里程碑发布前后,采用的方法是)最好为每个开发人员都有一个分支名称空间,并且有人负责合并功能?如果对功能进行了有限的更改,则可能出现的混乱范围会缩小。
git diff <1st-parent-hash> <merge-commit-hash>
git diff <2nd-parent-hash> <merge-commit-hash>
git diff abc123^1 abc123
git diff abc123^2 abc123