SourceTree 使用教程:从入门到熟练
什么是 SourceTree?
SourceTree 是 Atlassian 公司推出的一款免费、跨平台的 Git 图形化客户端,它旨在简化命令行的复杂性,让你通过点击按钮、拖拽等方式就能完成绝大多数 Git 操作。

- 优点:
- 可视化:清晰展示分支、提交历史、差异,一目了然。
- 免费:对个人用户和小型团队完全免费。
- 功能强大:集成了 Git 的核心功能,如克隆、提交、推送、拉取、合并、变基等。
- 易于上手:比记命令行更直观,降低学习门槛。
- 缺点:
- 依赖其自身的“凭据助手”,有时配置会出问题。
- 相比命令行,处理一些复杂的脚本或自动化任务时不够灵活。
安装与初始配置
-
下载
- 访问 SourceTree 官方下载页面。
- 选择适合你操作系统的版本(Windows 或 macOS)并下载。
-
安装
- Windows: 运行安装程序,按照向导一步步操作即可。
- macOS: 将
SourceTree.app拖到Applications文件夹。
-
登录与配置
- 首次启动,SourceTree 会要求你登录 Atlassian 账号(如果没有,可以免费注册一个)。
- 登录后,它会引导你配置 Git,通常选择 "Use System Git"(使用系统安装的 Git)或 "Use SourceTree Git"(使用自带的 Git),对于新手,使用自带的 Git 最简单,无需额外安装。
-
添加 SSH 密钥(推荐) 为了安全地连接到 GitHub, GitLab, Bitbucket 等代码托管平台,强烈推荐使用 SSH 密钥,而不是每次都输入用户名和密码。
(图片来源网络,侵删)- 生成密钥:如果你还没有 SSH 密钥,可以在终端(Git Bash, PowerShell 等)中运行:
ssh-keygen -t ed25519 -C "your_email@example.com"
一路回车即可,会在
~/.ssh/目录下生成id_ed25519(私钥) 和id_ed25519.pub(公钥)。 - 添加公钥到托管平台:
- 用记事本打开
id_ed25519.pub文件,复制全部内容。 - 登录你的 GitHub/GitLab 账号,进入
Settings->SSH and GPG keys->New SSH key。 - 将复制的内容粘贴到 Key 文本框,并为 Key 起个名字(如 "My Laptop"),然后保存。
- 用记事本打开
- 在 SourceTree 中验证:
- 打开 SourceTree,点击右上角的
设置(齿轮图标)。 - 进入
远程仓库->SSH 密钥。 - 点击
添加 SSH 密钥,选择你刚刚生成的私钥文件(id_ed25519)。 - 点击
验证,如果能成功连接到bitbucket.org,说明配置成功。
- 打开 SourceTree,点击右上角的
- 生成密钥:如果你还没有 SSH 密钥,可以在终端(Git Bash, PowerShell 等)中运行:
SourceTree 界面概览
熟悉界面是高效使用的基础,SourceTree 主要由以下几个部分组成:
- 工具栏:包含最常用的操作,如克隆、新建仓库、提交、推送、拉取等。
- 左侧边栏:
仓库:显示你所有通过 SourceTree 管理的本地仓库。工作区:显示当前打开仓库的文件状态。
- 区:
文件状态:显示工作目录中文件的修改状态(已修改、已暂存、未跟踪)。提交:查看和创建提交记录。分支:查看和管理所有分支。日志:查看项目的完整提交历史,这是 SourceTree 最核心的功能之一。
- 底部状态栏:显示当前分支、远程仓库连接状态等。
核心操作流程
克隆一个仓库
这是获取代码的第一步。
- 方法:点击工具栏的
克隆按钮。 - 操作:
- 在弹出的窗口中,粘贴你的仓库 SSH 或 HTTPS URL。
- 选择本地要存放代码的路径。
- 点击
克隆。
日常开发工作流
这是最常用、最重要的部分,遵循 修改 -> 暂存 -> 提交 -> 推送 的流程。

场景:你接到一个新任务,需要修改 feature/user-login 分支上的代码。
步骤:
a. 切换/创建分支
- 在左侧边栏,点击
分支。 feature/user-login分支已存在,右键点击它,选择检出。- 如果分支不存在,右键点击
main(或master) 分支,选择从 'main' 创建新分支,输入分支名feature/user-login,然后检出。
b. 修改代码
- 用你喜欢的编辑器(如 VS Code)打开项目文件,进行修改。
c. 查看修改
- 回到 SourceTree,你会看到主内容区自动切换到
文件状态。 - 所有被修改的文件会列在这里,你可以点击文件名查看具体的修改内容(Diff),绿色的是新增的行,红色的是删除的行。
d. 暂存文件
- 在文件列表前勾选你希望包含在本次提交中的文件。
- 最佳实践:一次提交只做一件事,只暂存与当前任务相关的文件。
e. 提交
- 在下方的
提交信息文本框中,清晰、简洁地描述你这次做了什么。feat: 实现用户登录功能。 - 点击
提交按钮。 - 你的代码已经本地提交成功了,但远程仓库还没有更新。
f. 推送到远程
- 点击工具栏的
推送按钮。 - 在弹出的窗口中,确保推送的是正确的分支(如
origin/feature/user-login),然后点击推送。 - 你的本地代码已经成功同步到远程仓库了。
从远程拉取更新
在你开始工作前,最好先拉取一下最新的代码,避免冲突。
- 方法:点击工具栏的
拉取按钮。 - 作用:它会从远程仓库获取最新的提交,并自动合并到你的当前分支,如果远程分支和你的本地分支没有新的共同提交,它会直接更新你的本地分支。
合并分支
当你完成 feature/user-login 分支的开发,需要将其合并到 main 分支时。
- 步骤:
- 确保你的
main分支是最新的(切换到main分支,然后执行一次拉取)。 - 切换到
main分支。 - 右键点击
feature/user-login分支,选择合并 'feature/user-login' 到 'main'。 - SourceTree 会弹出一个确认窗口,显示将要合并的提交,检查无误后,点击
合并。 - 合并完成后,就可以删除
feature/user-login分支了(右键分支 ->删除分支)。
- 确保你的
解决冲突
当你的本地修改和远程别人的修改有重叠时,就会发生冲突,SourceTree 会提示你。
- 冲突表现:在
文件状态中,冲突的文件会显示为冲突状态。 - 解决步骤:
- 双击冲突的文件,SourceTree 会打开一个冲突解决工具。
- 工具会清晰地标出冲突的部分(
<<<<<<<, ,>>>>>>>)。 - 你需要手动决定保留哪一部分代码,或者两者都保留,或者修改成新的内容。
- 解决完所有冲突后,保存文件。
- 回到 SourceTree,将已解决的文件暂存(勾选文件)。
- SourceTree 会提示你完成合并,输入提交信息,然后点击
提交,这次提交就是解决冲突的提交。
高级技巧与最佳实践
-
变基
- 场景:你的
feature分支是基于一个旧的main分支创建的,而main分支已经有新的提交了,你希望让你的feature分支的提交历史看起来是连续的。 - 操作:
- 切换到你的
feature分支。 - 右键点击
main分支,选择变基 'main' 到 'feature'(注意顺序是变基分支到当前分支)。 - SourceTree 会尝试将你的
feature分支的每个提交,依次应用到最新的main分支上。 - 如果遇到冲突,解决冲突的方式与合并时类似,但解决完冲突后,是继续变基(
Continue Rebase),而不是提交。
- 切换到你的
- 优点:历史记录更干净,没有“合并提交”的节点。
- 警告:不要对已经推送到远程的分支执行变基! 变基会重写历史,可能会导致团队协作混乱,变基只适用于你本地还未推送的分支。
- 场景:你的
-
暂存区
- 场景:你修改了 5 个文件,但只想先提交其中 3 个,2 个还没准备好。
- 操作:在
文件状态中,只勾选那 3 个文件,然后提交,剩下的 2 个文件会保持“已修改”状态,等你下次处理。
-
重置
- 场景:你刚刚提交了一个错误的提交,想撤销它,并且不保留任何修改。
- 操作:
- 在
提交视图中,找到那个错误的提交。 - 右键点击它,选择
重置到此提交->硬重置。
- 软重置:撤销提交,但保留修改的文件在工作区。
- 混合重置:撤销提交,并将修改的文件放回暂存区。
- 硬重置:撤销提交,并丢弃所有修改。慎用!
- 在
-
补丁
- 场景:你想分享你的修改,但又不想直接推送一个分支。
- 操作:
- 在
提交视图中,选择一个或多个提交。 - 右键点击,选择
创建补丁,生成一个.patch文件。 - 对方可以通过
git apply <filename.patch>来应用这个补丁。
- 在
SourceTree 是一个强大的工具,它能极大地提升你的 Git 使用体验,记住以下核心思想:
- 可视化优先:多利用 SourceTree 的图形界面来理解 Git 的状态和历史。
- 小步快跑:频繁地进行小提交,保持历史的清晰。
- 勤拉取:开始工作前先拉取,减少冲突。
- 善用分支:为每个新功能或 bugfix 创建独立分支。
通过这份教程,你已经掌握了 SourceTree 的 80% 的常用功能,剩下的 20% 需要在实际项目中不断练习和探索,祝你使用愉快!
