Git blame 显示对文件所做的更改。我想知道该更改何时合并到我们的实时分支中。
我可能可以用图形客户端来追踪它,但是还有很多其他的提交正在进行。提交不在实时分支的前几次合并中。
git show <commit_hash>
将为您提供有关提交的详细信息。
做这个
git rev-list <commit_hash>..<branch> --first-parent
git rev-list <commit_hash>..<branch> --ancestry-path
最后一行共同将是您正在寻找的提交哈希。
您可以将它们都存储在单独的文件中,然后sdiff
快速识别它。
如果我理解正确,你想要的应该是这样的:
git log --merges <interesting_hash>..<live_branch>
这至少似乎在一次性合并情况下有效。不确定它将如何在持续集成场景中发挥作用,其中两个分支之间可能发生了多次合并(尽管在这种情况下,至少它缩小了您需要查看的位置集)......
假设您的 git 流程是这样的:您将测试代码推送到master
(或production
)分支,一旦准备好,您只需将master
分支拉到生产环境中。在这种情况下,如果你想知道“什么时候”你做了pull
或merge
(是昨天吗?上周?),你可以使用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