用了三年 SourceTree,分享几个能省时间的配置和操作习惯

团队里一半人用命令行,一半人用 SourceTree。我属于后者——不是不会敲命令,是觉得没必要把时间花在
git status和git log上。三年用下来,攒了几个不起眼但确实省时间的习惯。
技巧一:别用 SourceTree 内嵌的 Git
装完 SourceTree 第一步,别急着用。打开 Options → Git → Git Version,选 System Git 而不是 Embedded。
内嵌版 Git 的版本更新特别慢。有一回我用 git switch 命令(Git 2.23 引入的新特性),在终端里好好的,SourceTree 里就是不认——因为它内嵌的还是 Git 2.20。从那以后就固定用 System Git 了。
路径一般是 C:\Program Files\Git\bin\git.exe,SourceTree 会自动检测到。
技巧二:按 Hunk 暂存,拆分大 commit 的神器
这个功能在命令行里对应 git add -p,但知道的人不多。SourceTree 把它做成了可视化的:
- 修改完一堆文件后,别急着全选 Commit
- 在右侧文件变更区,每个修改块(Hunk)旁边都有个 Stage Hunk 按钮
- 先点几个相关的 Hunk → 写 commit message → Commit
- 再点剩下的 Hunk → 另一个 commit message → Commit
这样你可以在不刻意控制的情况下,把一次大改动拆成多个目标明确的小 commit。Code Review 的人会感谢你的。
实际场景:改 bug 的时候顺手重构了一小段代码。用 Hunk 暂存可以把「修复 bug」和「重构」拆成两个 commit,而不是混在一起写个 fix and refactor。
技巧三:配置 VS Code 做外部合并工具
SourceTree 自带的冲突解决器,说好听的叫"简洁",说难听的就是"简陋"。两列并排显示,不能编辑,只能选左边还是右边。
配置 VS Code 接管冲突解决:
Tools → Options → Diff
External Diff Tool: Custom
Diff Command: code
Arguments: --diff $LOCAL $REMOTE
Merge Tool: Custom
Merge Command: code
Arguments: --wait $MERGED
配好之后,有冲突时右键文件 → Resolve Conflicts → Launch External Merge Tool,VS Code 打开三栏视图,直接在中间编辑合并结果。效率比 SourceTree 自带的高一个量级。
技巧四:SSH 密钥不认?检查这个地方
SourceTree 装完后默认用 PuTTY 做 SSH 客户端,但你大概率用的是 OpenSSH。所以 Clone SSH 地址的仓库时经常报认证失败。
修复路径:
Tools → Options → General → SSH Client Configuration
SSH Client: OpenSSH
SSH Key: C:\Users\你的用户名\.ssh\id_rsa
这个设置藏得比较深,估计 80% 第一次用 SourceTree 的新手都被坑过。
技巧五:重置分支的正确姿势——三种 Reset 的区别
在提交历史上右键某条 commit → Reset current branch to this commit,会弹出三个选项:
- Soft:只移动 HEAD 指针,工作区和暂存区的改动全部保留。适合「我刚提交了但还想继续改」
- Mixed(默认):移动 HEAD + 清空暂存区,工作区改动保留。适合「我提交错了,想重新拆分再提交」
- Hard:全部重置,工作区和暂存区都回到该 commit 的状态。适合「我刚才的提交完全搞砸了」
命令行里 git reset --soft/hard 一旦手滑就是灾难。SourceTree 至少给你一个下拉选择 + 确认弹窗,多了一层保护。
技巧六:Stash 不只是藏起来——善用描述
很多人 Stash 的时候直接点 OK,不写描述。一周后面对 WIP on develop: 837a2f1... 这种自动生成的名字,完全不知道里面存了什么。
养成习惯:每次 Stash 都填描述。比如 feature/支付:微信SDK集成到一半。之后在左侧 Stashes 列表里看一眼就知道哪个是哪个。
技巧七:多仓库切换——书签分组
如果你同时维护多个项目(公司项目 + 个人项目 + 开源贡献),左侧仓库列表会很快爆表。
SourceTree 支持给仓库打分组标签。右键仓库 → 添加到书签组 → 新建一个「公司」组和「个人」组,把仓库分门别类。比满屏滚动的列表清爽很多。
Git Flow——团队规范的一键操作
SourceTree 右上角的 Git Flow 按钮不只是个演示功能。如果你团队用 Git Flow,点它初始化之后,工具栏会多出一排快捷操作:
开始新功能 → Start New Feature(从 develop 创建 feature/xxx)
完成功能 → Finish Feature(合并回 develop + 删除分支)
开始发布 → Start New Release(从 develop 创建 release/xxx)
开始热修复 → Start New Hotfix(从 master 创建 hotfix/xxx)
命令行操作 Git Flow 当然没问题,但 SourceTree 版多了一层视觉确认——分支图上一眼就能看到你当前在哪条线上。别小看这个视觉反馈,它至少救过我三次 checkout 错分支的尴尬。
一个个人习惯:命令行 + GUI 的分工
我不会把所有 Git 操作都堆在 SourceTree 里,也不建议。用了三年之后我的分工大概是这样:
SourceTree 负责:
status/log/diff—— 看状态add/commit—— 暂存提交branch/merge—— 分支操作stash—— 暂存
命令行负责:
rebase -i—— 交互式变基,GUI 做不了cherry-pick—— 复杂场景的拣选bisect—— 二分法找 bugreflog—— 救急用
原则:高频操作用 GUI 加速,低频高级操作用命令行兜底。两者不是替代关系,是互补。
常见问题速查
Q:SourceTree 一打开就卡?
把不常用的仓库从书签里删掉。只是从 SourceTree 里移除,不会删本地文件。如果是单个大仓库慢(几千条 commit),在 View 里限制显示的提交条数。
Q:Gitee 能用吗?
完全能用。Clone 的时候填 Gitee 仓库地址就行,不挑平台。
Q:Push 报 Authentication failed?
去 Windows 凭据管理器,删掉 git:https://github.com 或对应条目,下次推送重新登录。如果是 GitHub,记得用 Personal Access Token 而不是密码。
Q:有没有中文版?
**没有。网上的汉化包不推荐——版本更新后容易出兼容问题。
总结
工具有没有用,看人怎么用。SourceTree 用了三年,最值钱的不是它本身的功能,是它帮你省下来的、不需要反复敲的那几百次 git status。

浙公网安备 33010602011771号