TortoiseGit 使用技巧大全:从入门到高效进阶(2)

告别命令行恐惧症——用好这只"小乌龟",Git 操作可以全程鼠标流,但效率绝不输命令行。

目录


六、暂存与恢复篇

6.1 Stash 的基本用法:临时的"代码保险箱"

经典场景:

你正在 feature 分支上改到一半——代码能跑但有 Bug,还没法提交。突然,Leader 发来消息:"生产环境出了问题,赶紧切到 hotfix 分支修一下!"

你不想提交半成品,又不想丢掉当前改动。怎么办?

做法:

  1. 右键 → TortoiseGit → Stash Save(贮藏更改)
  2. 在弹出的对话框中填写描述信息(如"登录页重构-进行中")→ OK
  3. 你的工作区瞬间变干净了——就像什么都没改过一样
  4. 切到 hotfix 分支,修复 Bug,提交,Push
  5. 切回 feature 分支
  6. 右键 → TortoiseGit → Stash Pop(弹出贮藏)
  7. 刚才的改动全部回来了,继续写代码!

屏幕截图 2026-05-19 193244

6.2 Stash List:管理多个暂存

你可以反复 Stash Save,每次保存都会压入一个"暂存栈"。

  • 查看所有暂存: 右键 → TortoiseGit → Stash List(贮藏列表)
  • 取出某个暂存(不删除): 在 Stash List 中右键目标暂存 → Stash Apply
  • 取出最近一次暂存(并删除): 右键 → Stash Pop
  • 丢弃某个暂存: 在 Stash List 中右键 → Stash Drop
命令 效果
Stash Save 保存当前改动,清空工作区
Stash Pop 取出最后一次暂存,并从栈中移除
Stash Apply 取出最后一次暂存,但保留在栈中
Stash List 查看所有暂存的列表
Stash Drop 删除指定暂存

七、冲突解决篇

7.1 冲突是怎么产生的

冲突的产生通常有两种情况:

  1. Pull 时冲突: 你和同事都改了同一个文件的同一行,他先 Push 了,你 Pull 的时候 Git 不知道怎么合并
  2. Merge 时冲突: 两个分支各自修改了同一个文件,Merge 时 Git 无法自动判断用哪个版本

发生冲突时,文件夹图标上会出现黄色感叹号,冲突文件的图标会变成红色感叹号

Overlays

7.2 TortoiseGitMerge 三步解决冲突

第一步:打开冲突解决工具

右键冲突文件 → TortoiseGit → Edit Conflicts(解决冲突),打开 TortoiseGitMerge。

界面分为三栏:

  • 左栏(Theirs):远程仓库 / 被合并分支的版本
  • 右栏(Mine):你本地的版本
  • 底部栏(Merged):合并结果(你需要编辑的内容)

第二步:逐冲突点合并

在底部栏中,你会看到 Git 标注的冲突区域。TortoiseGitMerge 提供了几种快捷操作:

按钮 作用
使用左侧块 用远程版本的代码
使用右侧块 用本地版本的代码
使用左侧块然后右侧块 先放远程的代码,再放本地的代码
使用右侧块然后左侧块 先放本地的代码,再放远程的代码

你还可以在底部栏手动编辑,写出你自己想要的最终版本。

第三步:标记为已解决

合并完成后,点击工具栏上的 "Mark as Resolved"(标记为已解决) 按钮,保存并退出。

然后提交这个解决了冲突的文件即可。

TMerge_TwoPane

7.3 使用外部工具辅助(WinMerge / Beyond Compare)

如果你习惯使用第三方比较工具,可以在设置中进行配置:

右键 → TortoiseGit → 设置 → Diff Viewer / Merge Tool

外部工具 设置方式
Beyond Compare 选择 External,指定 BCompare.exe 路径
WinMerge 选择 External,指定 WinMergeU.exe 路径

八、忽略文件篇

8.1 右键快速添加到忽略列表

最简单的方法(仅限未纳入版本控制的文件):

  1. 右键点击文件或文件夹
  2. TortoiseGit → 添加到忽略列表(Add to ignore list)
  3. 选择忽略范围:
    • 仅此文件/文件夹
    • 按扩展名忽略(如所有 .log 文件)
    • 递归忽略整个目录

注意:如果文件已经加入版本控制,忽略规则不会生效。你需要先从版本库中删除该文件(但保留本地文件),再添加到忽略列表。

8.2 .gitignore 规则详解

TortoiseGit 的"添加到忽略列表"操作,实际上是在项目根目录的 .gitignore 文件中添加规则。你也可以手动编辑这个文件:

# 这是注释

# 忽略所有 .log 文件
*.log

# 忽略 node_modules 目录
node_modules/

# 忽略所有 .o 和 .a 文件
*.[oa]

# 但是不忽略 lib.a(! 表示例外)
!lib.a

# 忽略 build 目录(不管在哪一级)
build/

# 只忽略根目录下的 tmp 文件
/tmp

# 忽略所有 .env 文件(保护隐私)
.env

常见项目的 .gitignore 模板速查:

项目类型 建议忽略的内容
Java *.class, target/, .idea/, *.jar, *.war
Node.js node_modules/, dist/, .env, npm-debug.log
Python __pycache__/, *.pyc, venv/, .env
C#/.NET bin/, obj/, *.user, *.suo, packages/
通用 .DS_Store, Thumbs.db, *.tmp, *.swp

.gitignore文件放在项目根目录下:

屏幕截图 2026-05-19 193002


九、配置与优化篇

9.1 图标覆盖不显示或显示异常

这是 TortoiseGit 用户最常见的困扰。图标覆盖让你一眼就能看出哪个文件改了、哪个冲突了——没了它,就像开车没了仪表盘。

问题原因: Windows 对图标覆盖(Icon Overlay)的数量有硬性限制,如果系统中安装了多个使用覆盖图标的软件(如 OneDrive、Dropbox、TortoiseSVN 等),TortoiseGit 的图标可能被"挤掉"。

解决方案:

  1. 右键 → TortoiseGit → 设置 → 图标覆盖(Icon Overlays)
  2. 将"显示覆盖图标的驱动器类型"设置为仅选本地固定磁盘
  3. 排除不需要监控的目录(如 node_modulesvendor 等大目录)

如果还是不行,需要修改注册表:

  1. 打开 regedit → 定位到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
  2. TortoiseGit 的条目名前面加空格(如 TortoiseGit1Normal),让它排在列表前面
  3. 重启资源管理器或重启电脑

9.2 加速 Show Log 的打开速度

对于大型仓库(几万次提交),Show Log 可能要等很久。

优化方法:

  1. 右键 → TortoiseGit → 设置 → Dialogs 1
  2. 设置日志条数限制(如只显示最近 1000 条)
  3. 在 Show Log 对话框中的日志过滤处填写过滤条件,缩小查询范围

效果: 在 50000+ 次提交的仓库中,By default 全部加载可能要 30 秒,设置限制后 2 秒内就能打开。

9.3 设置外部 Diff/Merge 工具

默认的 TortoiseGitMerge 已经很好用,但如果你更喜欢第三方工具:

右键 → TortoiseGit → 设置 → Diff Viewer

  • TortoiseGitMerge(默认)
  • External:自定义命令行(如 "C:\Program Files\Beyond Compare 4\BComp.exe" %base %mine
  • 内置几种预设,直接在列表中选择即可

感兴趣的读者也可以看我的这一篇博客:
Git、TortoiseGit 与 Beyond Compare 安装配置教程

某些 Git 托管平台(如阿里云云效)不支持 TortoiseGitPlink,需要切换为 OpenSSH:

右键 → TortoiseGit → 设置 → 网络 → SSH 客户端

SSH 客户端 特点
TortoiseGitPlink TortoiseGit 自带,与 PuTTY 集成好
OpenSSH (ssh.exe) 通用标准,兼容 ~/.ssh/config

十、快捷键与效率技巧篇

10.1 窗口最大化小妙招

很多 TortoiseGit 对话框包含大量信息(比如 Show Log),有时你只想纵向最大化而非占满全屏。

在窗口的最大化按钮上:

  • 鼠标中键点击 → 仅纵向最大化(高度占满)
  • 鼠标右键点击 → 仅横向最大化(宽度占满)

这是一个几乎官方文档里才提到的"隐藏"功能。

10.2 右键菜单"隐藏款"

某些极少使用的 TortoiseGit 命令默认不显示在右键菜单中。

调出隐藏菜单: 按住 Shift 键不松手,然后右键点击,TortoiseGit 的扩展上下文菜单就会出现——里面包含所有命令,包括那些不常用的。

如果你之前误操作把"设置"菜单隐藏了,用 Shift + 右键就能找回来。

10.3 常用快捷键速查表

TortoiseGitMerge 快捷键(Diff 模式)

快捷键 功能
F7 / Ctrl+↓ 跳到下一处差异
Shift+F7 / Ctrl+↑ 跳到上一处差异
Ctrl+D 切换单栏/双栏视图
Ctrl+R 重新加载文件(放弃所有修改)
Ctrl+T 显示/隐藏空白字符
Ctrl+L 折叠/展开未变化的段落

TortoiseGitMerge 快捷键(冲突解决模式)

快捷键 功能
F8 跳到下一处冲突
Shift+F8 跳到上一处冲突
Ctrl+F9 使用左侧代码块
Ctrl+F10 使用右侧代码块
Ctrl+Shift+F9 左块在前,右块在后
Ctrl+Shift+F10 右块在前,左块在后

TortoiseGitToolbar(VS 插件)快捷键

在 Visual Studio 中使用 TortoiseGit 工具栏插件,可以使用以下快捷键(需先在 VS 中配置):

快捷键 功能
Ctrl+G, C Git Commit
Ctrl+G, P Git Pull
Ctrl+G, U Git Push
Ctrl+G, L Git Log
Ctrl+G, M Git Merge
Ctrl+G, S Git Switch
Ctrl+G, R Git Rebase
Ctrl+G, A Stash Save
Ctrl+G, O Stash Pop

总结

TortoiseGit 不只是"Git 的 GUI 壳"——它通过 Windows 资源管理器集成、图标覆盖、可视化日志图和冲突解决工具,让 Git 操作的直观性和效率上了一个台阶。

无论你是:

  • Git 新手,害怕敲错命令——图形界面给你安全感
  • Git 熟手,但面对大型仓库需要快速定位问题——Show Log + Blame + Bisect 三件套
  • Git 老手,偶尔懒得敲命令——右键 3 秒完成 Stash / Cherry Pick / Revert

用好这只"小乌龟",你会发现:图形界面和命令行从来不是对立的,而是互补的。


本文基于 TortoiseGit 2.x 版本编写,部分截图和菜单位置可能因版本不同略有差异。

posted @ 2026-05-19 19:34  only赟  阅读(82)  评论(0)    收藏  举报