1

Git blame 显示对文件所做的更改。我想知道该更改何时合并到我们的实时分支中。

我可能可以用图形客户端来追踪它,但是还有很多其他的提交正在进行。提交不在实时分支的前几次合并中。

4

3 回答 3

3

git show <commit_hash>将为您提供有关提交的详细信息。

做这个

git rev-list <commit_hash>..<branch> --first-parent

git rev-list <commit_hash>..<branch> --ancestry-path

最后一行共同将是您正在寻找的提交哈希。

您可以将它们都存储在单独的文件中,然后sdiff快速识别它。

于 2012-12-05T14:56:04.547 回答
1

如果我理解正确,你想要的应该是这样的:

git log --merges <interesting_hash>..<live_branch>

这至少似乎在一次性合并情况下有效。不确定它将如何在持续集成场景中发挥作用,其中两个分支之间可能发生了多次合并(尽管在这种情况下,至少它缩小了您需要查看的位置集)......

于 2012-12-05T16:03:45.377 回答
0

假设您的 git 流程是这样的:您将测试代码推送到master(或production)分支,一旦准备好,您只需将master分支拉到生产环境中。在这种情况下,如果你想知道“什么时候”你做了pullmerge(是昨天吗?上周?),你可以使用reflog如下:

命令: git reflog show --date=default

输出:

5c4f140 HEAD@{Mon Aug 10 05:36:24 2015 +0000}: pull origin: Fast-forward 1ba6e4e HEAD@{Wed Aug 5 14:40:50 2015 +0000}: pull origin: Fast-forward 05382e4 HEAD@{Wed Jul 22 12:27:20 2015 +0000}: pull origin: Fast-forward bad194c HEAD@{Wed Jul 22 09:54:01 2015 +0000}: pull origin: Fast-forward 016f6cb HEAD@{Sat Jul 18 04:53:56 2015 +0000}: pull origin: Fast-forward b4839d3 HEAD@{Mon Jul 6 07:35:23 2015 +0000}: pull origin: Fast-forward

于 2015-08-10T08:29:40.513 回答