我们在git中使用功能分支样式。这意味着我们打开一个分支,对其进行处理,合并然后删除该分支(我们使用的应用程序(例如Bitbucket)中的默认设置)。我们有一些开发人员和一棵复杂的树。我希望能够显示树上的特定内容。如果我查看tortoise-git
的GUI生成的日志,则可以看到以下内容:
指示的红线是一个功能分支,上面有多个开发人员在工作。需要注意的是,它不包括来自其他合并的提交(图像中的红色方块)。
我希望仅能显示在此行上显示的提交(包括合并的提交,但不包括来自合并第一面之前的提交),作为git终端中的列表。我该怎么办?
我本以为像git log --second-parent
之类的东西(如果有的话)可以解决问题。显然tortoise-git
可以识别这些提交,执行相同操作的命令是什么?
不起作用的东西:
git log Commit-Where-Branch-Started..Commit-Where-Branch-Merged
As above but with --branches
答案 0 :(得分:2)
git log --first-parent $merge^2
$merge
是拼写合并提交的任何方式,git的msg-search语法很方便,因为合并消息通常是“ Merge branch'red'”,
redmerge=`git rev-parse :/Merge branch 'red'"`
git log --first-parent $redmerge^2
或者也许
git log --first-parent $(git rev-parse ":/'red'")^2
或仅从探索性日志结果中提取哈希码。我猜乌龟不会用任何可以复制的数据来备份漂亮的图片,尽管如果它使用SVG进行显示,可以尝试重新点击顶部的红色方块以查看是否可以复制提交ID?
答案 1 :(得分:1)
假设您在本地reflog中仍然有已删除的提交,则可以按照this answer中的说明重新创建分支:
git checkout -b <branch> <sha>
然后与用于分支的分支进行比较:
git log master..