SourceTree 完整教程:从入门到精通
目录
- 什么是 SourceTree?为什么选择它?
- 第一步:安装与配置
- 第二步:克隆或创建你的第一个仓库
- 第三步:核心界面详解
- 第四步:日常 Git 操作(图文详解)
- 1 查看修改
- 2 提交更改
- 3 推送到远程仓库
- 4 从远程仓库拉取
- 5 切换分支
- 6 创建新分支
- 7 合并分支
- 8 解决冲突
- 第五步:高级功能与技巧
- 1 Stash(储藏)
- 2 Rebase(变基)
- 3 标签
- 4 查看历史记录
- 第六步:最佳实践与常见问题
什么是 SourceTree?为什么选择它?
SourceTree 是由 Atlassian 公司(也就是开发 Jira 和 Confluence 的公司)推出的一款 免费、跨平台 的 Git 图形化客户端。

主要优势:
- 可视化操作:将复杂的 Git 命令(如
commit,push,merge,rebase)转化为直观的点击和拖拽操作,极大降低了学习门槛。 - 功能强大:不仅覆盖了所有基础操作,还支持高级功能如 Stash、Rebase、Squash 等。
- 免费:对于个人使用和小型团队完全免费。
- 跨平台:支持 Windows 和 macOS。
- 与 Atlassian 生态集成:可以无缝连接到 Bitbucket 和其他 Git 托管服务。
适合人群:
- Git 初学者。
- 喜欢图形化界面,不喜欢记忆命令行的开发者。
- 需要快速理解项目提交历史的开发者。
第一步:安装与配置
前提条件: 你的电脑上必须已经安装了 Git,SourceTree 本身只是一个客户端,它需要调用你系统里的 Git。
安装步骤:

- 下载:访问 SourceTree 官方网站,下载适合你操作系统的版本。
- 安装:按照安装向导一步步进行,Windows 版本可能需要安装 .NET Framework。
- 登录账户:首次启动时,你需要登录一个 Atlassian 账号,如果没有,可以免费注册一个,这主要用于身份验证和未来可能的服务集成。
- 配置 Git 路径:SourceTree 会自动检测你系统中的 Git 安装路径,如果检测不到,你需要手动指定到
git.exe所在的文件夹(C:\Program Files\Git\bin)。 - 完成:点击 "Start using SourceTree",你就可以看到欢迎界面了。
第二步:克隆或创建你的第一个仓库
打开 SourceTree,你会看到主界面,这里有两个主要操作:
克隆一个已存在的远程仓库
- 点击左上角的 "Clone" 按钮。
- 在弹出的窗口中,粘贴你的远程仓库地址(支持 HTTPS 和 SSH)。
- 选择一个本地路径来存放仓库。
- 点击 "Clone",SourceTree 就会帮你把仓库完整地下载到本地。
创建一个新本地仓库
- 点击左上角的 "New" 按钮。
- 选择 "New Repository"。
- 选择一个本地路径,并给仓库命名。
- 你可以选择 "Initialize this repository with a README" 来创建一个初始的
README.md文件。 - 点击 "Create",一个新的本地仓库就创建好了。
第三步:核心界面详解
克隆或创建仓库后,你会进入 SourceTree 的核心工作区,了解这个界面是高效使用 SourceTree 的关键。

界面主要分为几个部分:
- 顶部工具栏:包含最常用的操作,如
Commit(提交)、Push(推送)、Pull(拉取)、Branch(分支)等。 - 文件状态区:
- Unstaged files:已修改但未暂存的文件,你需要将这些文件拖到右侧或点击 号来暂存它们,才能进行提交。
- Staged files:已暂存的文件,这些文件就是下一次提交将要包含的内容,你可以点击 号来取消暂存。
- 提交信息区:
- 在这里输入你的提交信息。
- 可以选择是创建一个 "Commit"(普通提交)还是一个 "Amend"(修改上一次提交)。
- "Author" 字段可以修改提交者信息。
- 底部视图区:这是 SourceTree 最强大的地方,可以通过底部的标签页切换不同的视图。
- Log:查看项目的提交历史,以可视化的方式展示分支、合并等。
- File Status:与顶部的文件状态区类似,但可以展开查看具体修改。
- Stashes:查看所有储藏的内容。
- Remotes:管理远程仓库。
- Branches:管理分支。
第四步:日常 Git 操作(图文详解)
1 查看修改
当你修改了文件后,SourceTree 会自动检测到。
- 在 Unstaged files 区域,你会看到被修改的文件。
- 点击文件名,下方的 "Diff" 视图会清晰地展示你 增加了什么(绿色)、删除了什么(红色)。
2 提交更改
这是最频繁的操作。
- 将你想要提交的文件从 Unstaged files 拖到 Staged files 区域(或点击文件旁边的 号)。
- 在下方的 "Commit message" 框中,输入清晰、简洁的提交信息("修复登录按钮样式")。
- 点击顶部的 "Commit" 按钮。
一个标准的提交就完成了!你的更改只存在于本地仓库中。
3 推送到远程仓库
将本地的提交分享到远程仓库(如 GitHub, GitLab, Bitbucket)。
- 确保你已经提交了本地更改。
- 点击顶部工具栏的 "Push" 按钮。
- SourceTree 会提示你即将推送的提交信息,确认后点击 "Push"。
4 从远程仓库拉取
获取远程仓库的最新更改,以保持你的本地仓库是最新的。
- 点击顶部工具栏的 "Pull" 按钮。
- SourceTree 会自动将远程的更改合并到你的当前分支。
5 切换分支
- 点击顶部工具栏的 "Branch" 按钮。
- 在弹出的窗口中,你会看到所有本地和远程分支。
- 选择你想要切换到的分支,然后点击 "Checkout"。
6 创建新分支
- 点击顶部工具栏的 "Branch" 按钮。
- 点击 "New..."。
- 输入新分支的名称。
- 选择基于哪个分支创建(通常是当前分支)。
- 点击 "Create",新分支会被创建并自动切换到。
7 合并分支
假设你正在 feature/new-login 分支上开发新功能,现在要把它合并到主分支 main。
- 切换到目标分支(
main)。 - 点击顶部工具栏的 "Merge" 按钮。
- 在弹出的窗口中,选择你要合并的源分支(
feature/new-login)。 - 选择合并方式:
- Create a merge commit:创建一个合并提交,保留完整的分支历史,这是最安全、最推荐的方式。
- Squash:将源分支的所有提交压缩成一个提交,然后合并到目标分支,这会使历史记录更简洁,但会丢失分支的提交细节。
- 点击 "Merge"。
8 解决冲突
当两个分支对同一个文件的同一部分进行了不同的修改,合并时就会发生冲突。
SourceTree 会自动检测到冲突,并在 Unstaged files 区域用特殊的图标标记出来。
解决冲突的步骤:
- 双击冲突的文件,SourceTree 会打开冲突解决器。
- 解决器会清晰地展示冲突的部分:
<<<<<<< HEAD:当前分支(main。- 分隔符。
>>>>>>> feature/new-login:你要合并的分支(feature/new-login。
- 手动编辑文件,决定保留哪部分内容,或者将两部分内容合并。
- 保存文件。
- 回到 SourceTree 主界面,你会看到该文件已经不再显示冲突标记。
- 像正常提交一样,将解决好的文件 暂存 并 提交,这次提交就是一次合并提交。
第五步:高级功能与技巧
1 Stash(储藏)
当你正在一个分支上工作,但需要临时切换到另一个分支处理紧急任务时,Stash 非常有用,它可以“暂存”你当前的未提交修改。
- 在主界面,点击 "Stash" 按钮。
- 输入一个描述性的储藏名称,然后点击 "Stash"。
- 你的工作区是干净的,可以安全地切换分支了。
- 处完紧急任务后,切换回原来的分支,点击 "Stash" 按钮,然后选择你之前创建的储藏,点击 "Pop" 或 "Apply" 来恢复你的修改。
Pop会删除储藏,Apply则保留。
2 Rebase(变基)
Rebase 是一种强大的历史记录整理工具,它可以将一系列提交“迁移”到另一个分支的最新提交之后,从而形成一条线性的历史记录。
注意:Rebase 会重写提交历史,不要对已经推送到公共仓库的分支执行 Rebase,只用于你本地的特性分支。
- 切换到你想要整理历史的分支(
feature)。 - 点击顶部工具栏的 "Rebase" 按钮。
- 选择你要基于的分支(
main)。 - SourceTree 会尝试自动合并,如果遇到冲突,解决冲突后,不要提交,而是执行以下 Git 命令(在终端或 SourceTree 的内置终端):
git add . git rebase --continue
- 当 Rebase 完成后,你的提交历史看起来就像是直接在
main分支的最新提交上开发的一样。
3 标签
标签用于给特定的提交打上快照,通常用于标记版本发布(如 v1.0.0)。
- 在 Log 视图中,右键点击你想要打标签的提交。
- 选择 "Tag"。
- 输入标签名称(建议使用语义化版本号,如
v1.0.0)。 - 你可以选择是否添加标签注释。
- 点击 "Create"。
4 查看历史记录
Log 视图是 SourceTree 的精华。
- 可视化分支:它会以图形化的方式展示所有分支、合并点和提交历史。
- 筛选:你可以通过作者、时间范围、提交信息等筛选提交记录。
- 操作:右键点击任何提交,可以进行 Cherry-pick(挑选提交)、Reset(重置)、Rebase(变基)等操作。
第六步:最佳实践与常见问题
最佳实践:
- 写清晰的提交信息:使用现在时态,"Add login button" 而不是 "Added login button"。
- 小而频繁的提交:不要把所有修改攒到一起再提交,这样会让历史难以追踪。
- Pull Request (PR) / Merge Request (MR):使用 SourceTree 的 "Create Pull Request" 功能(需要连接到 GitHub/GitLab 等),这是团队协作的核心。
- 多用分支:为每个新功能或 bug 修复创建独立的分支。
- 在合并前 Pull:在向公共分支(如
main)合并前,先Pull一下远程的最新代码,避免不必要的冲突。
常见问题:
-
Q: 提交时提示 "Author identity unknown"
- A: 这是因为你的 Git 用户名和邮箱没有配置,在 SourceTree 设置中找到 "Action" -> "Options",然后配置你的默认用户名和邮箱。
-
Q: Push 失败,提示 "non-fast-forward"
- A: 这意味着远程仓库有你本地没有的最新提交,你需要先
Pull远程更改,解决可能的冲突,然后再Push。
- A: 这意味着远程仓库有你本地没有的最新提交,你需要先
-
Q: Rebase 失败了怎么办?
- A: Rebase 失败后,SourceTree 会告诉你哪个提交导致了冲突,解决冲突后,使用
git add .和git rebase --continue继续操作,如果想放弃这次 Rebase,可以使用git rebase --abort。
- A: Rebase 失败后,SourceTree 会告诉你哪个提交导致了冲突,解决冲突后,使用
SourceTree 是一个极其优秀的 Git 客户端,它通过图形化界面将 Git 的强大功能变得平易近人,掌握 SourceTree,不仅能让你告别复杂的命令行,还能让你更直观地理解 Git 的工作流,从而更高效地进行版本控制。
希望这份教程能帮助你顺利开启 SourceTree 的使用之旅!多加练习,很快你就能熟练掌握它。
