例如,如果我这样做:
git log --oneline --graph --decorate master branch dcfadf1
我看到所有提交:
* e8599bb (HEAD -> branch) branch5
* 2fe1c92 branch4
| * f083d02 (master) master5
| * d33bf64 master4
|/
* a286c74 master3
* dcfadf1 master2
* 6f58634 master1
但是,我只想看看:
* e8599bb (HEAD -> branch) branch5
| * f083d02 (master) master5
|/
* a286c74 master3
* dcfadf1 master2
以更好地了解这些特定提交的相关性。
为什么每个提交应该出现的那些:
e8599bb
(branch
),f083d02
(master
)和dcfadf1
:在命令行中给出a286c74
:合并命令行(branch
和master
)上提交的两个提交的基础(最近的共同祖先)。我不能使用--simplify-by-decoration
,因为我的实际仓库有很多我不关心的分支,而且默认情况下会删除合并基础:http://git.661346.n2.nabble.com/quot-git-log-simplify-by-decoration-quot-but-including-branch-amp-merge-points-td6825766.html
答案 0 :(得分:0)
如评论中所述,git gc
如果您打算查看不一定相互关联的提交,则毫无意义。因此,我建议您放下--graph
,您将可以使用--graph
。
以下是--no-walk
的{{1}}文档,以供参考:
仅显示给定的提交,但不遍历其祖先。如果指定范围,则无效。如果给出了unsorted参数,则按照在命令行中给出的顺序显示提交。否则(如果已排序或未提供任何参数),则按提交时间以相反的时间顺序显示提交。不能与--graph结合使用。
因此,在您的示例中,我将使用:
git log