我正在为我的项目使用Git并尝试遵循最佳实践:
git merge --squash
将主题分支合并到我的 dev 分支中。这使我的 dev 分支保持清洁。这应该保留我们的历史记录,并且使用gitk,我们可以看到所有提交的位置。但是,我希望能够看到仅应用于 master的提交分支。我试过了:
git log master
git show-branch
这些都不会显示 主分支的历史记录。有没有办法轻松做到这一点?
答案 0 :(得分:23)
如果我正确理解你,你想看到合并回主人,而不是那些合并的历史。我相信:
git log --merges
会给你你想要的东西。
更新:添加--first-parent应该从声音中解决这个问题。
git log --merges --first-parent
- 第一亲
Follow only the first parent commit upon seeing a merge commit.
此选项可以提供更好的概述 在观看a的演变时 特定主题分支,因为 合并到主题分支往往是 只是关于调整到更新 上游不时,这个 选项允许你忽略 个人承诺带给你的 这种合并的历史。
答案 1 :(得分:8)
不幸的是,Git不存储提交的分支信息,并且提交不属于分支。 Git中的分支只是在提交过程中“移动标记”而不是人们所期望的一系列提交。
所以基本上你不能显示属于分支的提交,因为Git中没有这样的概念。
答案 2 :(得分:3)
由于Git不存储关于哪个分支从哪个分支出生的信息,因此无法自动猜测您可能希望显示哪个分支。
在这方面,--first-parent
最终不会有所帮助,特别是因为很容易拥有一个以上的主人。考虑:
wc1$ git clone git://shared.com/repo
wc1$ (hack code, git commit)
wc2$ git clone git://shared.com/repo
wc2$ (hack code, git commit, git push somewhere)
wc1$ git fetch origin; git merge origin/master; git push somewhere master;
(随意采取随机项目并进行此练习。)图表。所以你不能有意义地绘制“只有一个分支”,即使提交被标记为它们所在分支的名称(因为它们都是主分支)。