【发布时间】:2020-09-10 13:21:00
【问题描述】:
我想列出在特定分支中直接完成的所有提交。在 hg 中,我可以使用以下命令获取它。
hg log -b {branchname}
我尝试了不同的命令 git 来达到同样的效果,但是没有任何用处。
git log --no-merges
git log --no-merges --first-parent
git log ---no-merge ^HEAD ^master
git log --branches={BRANCH}
如何列出在给定分支中直接提交但不从其他分支合并的所有变更集。
【问题讨论】:
-
根据documentation,你应该也可以在git中使用
--no-merges。如果这对您没有“用处”,您将不得不举例说明原因以及您期望的输出。 -
什么分支被移动了?如果这些提交不是在某个分支下“提交”但现在它们出现了怎么办。
-
我认为您不会拥有与在 Mercurial 中所做的提交不链接到分支的完全相同的功能(对于我知道的少数人)。在 Git 中,分支(或更一般的 refs)是指向提交的指针。
-
git log --first-parent --no-merges有什么特别的问题?这列出了你开始的分支的没有合并和没有合并的历史记录,只要你想要。 -
@Philippe 所说的是正确的:在 Mercurial 中,分支真的很重要。它们是一流的实体,分支名称在不同的存储库之间共享。在 Git 中情况并非如此:Git 提交不会记录其分支,并且分支名称的共享方式也不同。 (一个 Git 存储库可以查看另一个的分支名称,但没有义务使用它们。确实,使用 Hg 的“convert”扩展,您可以跨 Hg 映射分支名称存储库,但仍然有一个一流的“分支名称”概念附加到每个提交。)
标签: git mercurial tortoisehg