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