TortoiseGit 使用技巧大全:从入门到高效进阶(2)
告别命令行恐惧症——用好这只"小乌龟",Git 操作可以全程鼠标流,但效率绝不输命令行。
目录
六、暂存与恢复篇
6.1 Stash 的基本用法:临时的"代码保险箱"
经典场景:
你正在
feature分支上改到一半——代码能跑但有 Bug,还没法提交。突然,Leader 发来消息:"生产环境出了问题,赶紧切到hotfix分支修一下!"你不想提交半成品,又不想丢掉当前改动。怎么办?
做法:
- 右键 → TortoiseGit → Stash Save(贮藏更改)
- 在弹出的对话框中填写描述信息(如"登录页重构-进行中")→ OK
- 你的工作区瞬间变干净了——就像什么都没改过一样
- 切到
hotfix分支,修复 Bug,提交,Push - 切回
feature分支 - 右键 → TortoiseGit → Stash Pop(弹出贮藏)
- 刚才的改动全部回来了,继续写代码!

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 冲突是怎么产生的
冲突的产生通常有两种情况:
- Pull 时冲突: 你和同事都改了同一个文件的同一行,他先 Push 了,你 Pull 的时候 Git 不知道怎么合并
- Merge 时冲突: 两个分支各自修改了同一个文件,Merge 时 Git 无法自动判断用哪个版本
发生冲突时,文件夹图标上会出现黄色感叹号,冲突文件的图标会变成红色感叹号。

7.2 TortoiseGitMerge 三步解决冲突
第一步:打开冲突解决工具
右键冲突文件 → TortoiseGit → Edit Conflicts(解决冲突),打开 TortoiseGitMerge。
界面分为三栏:
- 左栏(Theirs):远程仓库 / 被合并分支的版本
- 右栏(Mine):你本地的版本
- 底部栏(Merged):合并结果(你需要编辑的内容)
第二步:逐冲突点合并
在底部栏中,你会看到 Git 标注的冲突区域。TortoiseGitMerge 提供了几种快捷操作:
| 按钮 | 作用 |
|---|---|
| 使用左侧块 | 用远程版本的代码 |
| 使用右侧块 | 用本地版本的代码 |
| 使用左侧块然后右侧块 | 先放远程的代码,再放本地的代码 |
| 使用右侧块然后左侧块 | 先放本地的代码,再放远程的代码 |
你还可以在底部栏手动编辑,写出你自己想要的最终版本。
第三步:标记为已解决
合并完成后,点击工具栏上的 "Mark as Resolved"(标记为已解决) 按钮,保存并退出。
然后提交这个解决了冲突的文件即可。

7.3 使用外部工具辅助(WinMerge / Beyond Compare)
如果你习惯使用第三方比较工具,可以在设置中进行配置:
右键 → TortoiseGit → 设置 → Diff Viewer / Merge Tool
| 外部工具 | 设置方式 |
|---|---|
| Beyond Compare | 选择 External,指定 BCompare.exe 路径 |
| WinMerge | 选择 External,指定 WinMergeU.exe 路径 |
八、忽略文件篇
8.1 右键快速添加到忽略列表
最简单的方法(仅限未纳入版本控制的文件):
- 右键点击文件或文件夹
- TortoiseGit → 添加到忽略列表(Add to ignore list)
- 选择忽略范围:
- 仅此文件/文件夹
- 按扩展名忽略(如所有
.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文件放在项目根目录下:

九、配置与优化篇
9.1 图标覆盖不显示或显示异常
这是 TortoiseGit 用户最常见的困扰。图标覆盖让你一眼就能看出哪个文件改了、哪个冲突了——没了它,就像开车没了仪表盘。
问题原因: Windows 对图标覆盖(Icon Overlay)的数量有硬性限制,如果系统中安装了多个使用覆盖图标的软件(如 OneDrive、Dropbox、TortoiseSVN 等),TortoiseGit 的图标可能被"挤掉"。
解决方案:
- 右键 → TortoiseGit → 设置 → 图标覆盖(Icon Overlays)
- 将"显示覆盖图标的驱动器类型"设置为仅选本地固定磁盘
- 排除不需要监控的目录(如
node_modules、vendor等大目录)
如果还是不行,需要修改注册表:
- 打开
regedit→ 定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers - TortoiseGit 的条目名前面加空格(如
TortoiseGit1Normal),让它排在列表前面 - 重启资源管理器或重启电脑
9.2 加速 Show Log 的打开速度
对于大型仓库(几万次提交),Show Log 可能要等很久。
优化方法:
- 右键 → TortoiseGit → 设置 → Dialogs 1
- 设置日志条数限制(如只显示最近 1000 条)
- 在 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 安装配置教程
9.4 SSH 客户端切换:TortoiseGitPlink vs OpenSSH
某些 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 版本编写,部分截图和菜单位置可能因版本不同略有差异。

浙公网安备 33010602011771号