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

image

团队里一半人用命令行,一半人用 SourceTree。我属于后者——不是不会敲命令,是觉得没必要把时间花在 git statusgit 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 把它做成了可视化的:

  1. 修改完一堆文件后,别急着全选 Commit
  2. 在右侧文件变更区,每个修改块(Hunk)旁边都有个 Stage Hunk 按钮
  3. 先点几个相关的 Hunk → 写 commit message → Commit
  4. 再点剩下的 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 —— 二分法找 bug
  • reflog —— 救急用

原则:高频操作用 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

下载地址:sourcetree.ijinshan.com

posted @ 2026-07-07 10:40  PC修复电脑医生  阅读(31)  评论(0)    收藏  举报