终端宽度不足或中文提交信息导致 git log --graph 输出错位、竖线断裂,需拉宽至120列以上并配合 --simplify-by-decoration 或 --no-merges 优化;远程分支不显示主因是未执行 git fetch --all 同步 refs;推荐配置全局 alias lg 并启用 Git Graph 插件的 autoFetch 功能。

git log --graph 输出错位、竖线断裂怎么办
终端宽度不够或中文提交信息是罪魁祸首。Git 的 --graph 依赖字符对齐,列宽低于 120 容易折行,导致分支线断开、节点偏移。
- 运行
stty size查看当前行列数,手动拉宽终端窗口至至少 120 列 - 加
--simplify-by-decoration过滤掉无分支/标签标记的中间提交,大幅减少图形复杂度 - 遇到中文提交名乱码,可加
--no-merges先屏蔽合并提交(它们最常带中文描述),或改用--pretty=format:"%h %s"手动控制字段宽度
远程分支不显示在 git log --graph 里
git log --graph --all 不显示 origin/feature 类引用,大概率不是命令写错,而是本地没 fetch 到最新远程引用。
- 执行
git fetch --all,确保所有远程分支指针已同步到本地refs/remotes/下 - 确认远程分支名是否真实存在:
git ls-remote --heads origin - 如果仍不显示,可能是 Git 版本太旧(
--all对某些 ref 类型支持不全),升级 Git 可解
想固定一套高可读输出,但又不想每次敲长命令
直接配全局 alias 最省事,且避免每次记不住参数组合。
- 推荐 alias:
git config --global alias.lg "log --graph --oneline --all --decorate --color=always" - 执行
git lg即可获得带颜色、分支名、远程引用、紧凑格式的完整拓扑图 - 若终端不支持真彩色,去掉
--color=always或改用--color=auto
VS Code 里 Git Graph 插件不显示远程分支或刷新滞后
Git Graph 渲染的是本地 refs 数据,它不会自动触发 git fetch,所以远程分支状态可能 stale。
- 右键点击插件视图空白处 → 选择 “Refresh” 手动重载(不是 Ctrl+R 页面刷新)
- 确保插件设置中启用了
gitGraph.refreshInterval(默认为 0,即禁用自动刷新) - 如需自动同步远程,可在 VS Code 设置中开启
gitGraph.autoFetch(需 Git Graph v1.40.0+)
refs/remotes/origin/*;它们和真实远程仓库之间永远存在时间差,除非显式 fetch 或启用自动 fetch。


















