仅显示Git日志中一个分支的历史记录

Ale*_*rey 25 git git-log branching-and-merging

我正在为我的项目使用Git并尝试遵循最佳实践:

  1. 我在一个主题分支上工作
  2. 准备好后,我将主题分支合并到我的dev分支中git merge --squash.这使我的开发分支保持清洁.
  3. 每当dev分支稳定并且团队决定它的发布时间时,我们将dev分支合并到master分支中,而不使用squash,并将提交的标记作为版本发布.

这应该保留我们的历史,并使用gitk,我们可以看到所有提交的位置.但是,我希望能够看到应用于分支的提交.我试过了:

git log master
git show-branch
Run Code Online (Sandbox Code Playgroud)

这些都不显示只是在历史的主分支.有没有办法轻松做到这一点?

Jam*_*acs 23

如果我正确理解你,你希望看到合并回到master,而不是那些合并的历史.我相信:

git log --merges
Run Code Online (Sandbox Code Playgroud)

会给你你想要的.

更新:添加--first-parent应该从它的声音中解决这个问题.

git log --merges --first-parent
Run Code Online (Sandbox Code Playgroud)

--first父

Follow only the first parent commit upon seeing a merge commit.
Run Code Online (Sandbox Code Playgroud)

在查看特定主题分支的演变时,此选项可以提供更好的概述,因为合并到主题分支往往只是关于不时调整到更新的上游,并且此选项允许您忽略引入的单个提交通过这样的合并你的历史.

  • 第一父级不一定是分支之前所在的位置,而是在合并期间(合并发生的分支)确定的。如果您快进进行合并,则第一个父级是另一个分支。 (2认同)

Kos*_*tas 8

不幸的是,Git不存储提交的分支信息,并且提交不属于分支.Git中的分支只是在提交过程中"移动标记"而不是人们所期望的一系列提交.

所以基本上你不能显示属于分支的提交,因为Git中没有这样的概念.