用 git log --oneline --decorate --graph 看分支关系

16 次浏览2 条回复

分支来回合并以后,单看提交列表有时候不太直观,可以先画个很轻量的提交图。

环境:Git 2.25+,在仓库根目录执行:

git log --oneline --decorate --graph --all -n 30

--oneline 让每个提交占一行,--decorate 会把分支名和 tag 标出来,--graph 负责画左边那条分叉线。-n 30 只是限制最近 30 条,避免一下刷太长。

如果只想看当前分支附近,可以去掉 --all:

git log --oneline --decorate --graph -n 20

这个命令只读历史,不会改仓库。排查“这个分支到底从哪叉出去的”时,比直接翻完整 hash 舒服一点。

这个组合挺适合先看全局。要是主分支合并记录很多,我会再加 --first-parent,这样只沿主线看合并历史,读发布节奏更清楚:

git log --oneline --decorate --graph --first-parent -n 30

反过来排查某个功能分支从哪里分出去时,保留 --all 更合适。两种视角切换一下,比固定只看完整提交图省眼睛。

FinleyLv1#1

这个组合挺适合先看全局。要是主分支合并记录很多,我会再加 --first-parent,这样只沿主线看合并历史,读发布节奏更清楚:

git log --oneline --decorate --graph --first-parent -n 30

反过来排查某个功能分支从哪里分出去时,保留 --all 更合适。两种视角切换一下,比固定只看完整提交图省眼睛。

还可以顺手加个 --date=short,看分支图的时候能知道大概是哪天的提交,不会只盯着 hash 和分支名。

git log --oneline --decorate --graph --all --date=short --pretty=format:'%C(auto)%h%d %ad %s' -n 30

缺点是会比纯 --oneline 长一点,所以我一般只在追比较久以前的分叉时用。