改完代码想确认这条分支从哪个 commit 切出来,敲 git log --graph --oneline 出来一屏竖线,翻页还得记行号。VS Code 里装个 Git Graph,整个提交图平铺在标签页,合并点一眼能看到。

装完在哪里打开

扩展面板搜 Git Graph,作者是 mhutchie。安装后源代码管理视图的标题栏会多一个图标,仓库没打开时它不出现,很多人以为装失败了。也可以按 F1 执行 Git: View Git Graph。第一次读取几千个 commit 的仓库会转几秒,属于正常。

右键菜单里的高频操作

  • Checkout:切到某个分支,或临时看一眼旧提交
  • Merge、Rebase、Cherry Pick:不用切回终端敲命令
  • Create Branch、Add Tag:从任意一次提交拉分支或打标签
  • Copy Commit Hash、Compare with HEAD:核对两次提交改了哪些文件

三个值得改的默认值

仓库大了以后,在设置里把 git-graph.maxDepthOfCommits 从 3000 调到 500,打开速度立刻不一样。勾上 Show Remote Branches 才能看到 origin 上的分支,否则同事推的代码在图里找不到,得先 fetch 一次。日期格式改成相对时间,看最近的改动更省脑子。

用它查分支从哪来

线上少了一个改动,先在图里定位那次提交,看它的父节点落在哪条线上,就能判断是合并时漏了,还是分支压根没合进去。悬停能看到作者和提交时间,点开某个提交,下方列出改动的文件,双击直接和本地版本对比,比来回切分支快。

和 GitLens 不冲突

GitLens 强在逐行 blame,光标停在某行就能看到是谁哪次提交改的;Git Graph 强在看整体结构和做分支操作。两个都装,侧边栏各占一块,互不影响。

右键里的 Reset 要留神,Hard 模式会连工作区未提交的改动一起抹掉,找不回来。日常用 Checkout 和 Cherry Pick 就够,真要动历史,先 git stash 或者开个临时分支兜底。