杰瑞科技汇

SourceTree怎么用?新手入门教程指南

目录

  1. 第一部分:准备工作
    • 什么是 Git 和 SourceTree?
    • 安装和配置
  2. 第二部分:SourceTree 界面概览
    • 主界面解析
    • 核心功能区域介绍
  3. 第三部分:核心工作流 - 克隆、提交、推送
    • 克隆一个远程仓库
    • 创建和切换分支
    • 修改文件并提交
    • 推送你的更改到远程仓库
  4. 第四部分:协作工作流 - 抓取、拉取、合并
    • 抓取 和拉取 的区别
    • 解决合并冲突
    • 同步你的分支
  5. 第五部分:高级操作与技巧
    • 查看历史记录和比较差异
    • 使用 Stash (临时保存)
    • 变基 - 让历史更整洁
    • 创建和管理 Pull Request (在 GitHub/GitLab 上)
  6. 第六部分:常见问题与最佳实践
    • 常见问题解答
    • 最佳实践建议

第一部分:准备工作

什么是 Git 和 SourceTree?

  • Git: 是一个分布式版本控制系统,你可以把它想象成一个“超级时间机器”,它记录了你项目文件的所有历史更改,你可以随时回溯到任何一个历史版本,比较不同版本之间的差异,与他人协作开发等。
  • SourceTree: 是一个Git 的图形化客户端,它由 Atlassian (Jira, Confluence 的开发商) 开发,免费提供给个人使用,它将 Git 复杂的命令行操作转化为了直观的按钮和界面,让你无需记忆命令就能高效地使用 Git。

安装和配置

  1. 安装 Git:

    SourceTree怎么用?新手入门教程指南-图1
    (图片来源网络,侵删)
    • SourceTree 本身只是一个界面,它需要依赖你电脑上安装的 Git,请确保你已经安装了 Git。
    • Windows: 访问 Git for Windows 下载并安装,安装时一路点击 "Next" 即可,它会自动配置好环境变量。
    • Mac: 使用 Homebrew 安装 brew install git,或者直接从 Git for Mac 下载安装包。
  2. 安装 SourceTree:

    • 访问 SourceTree 官网,下载适合你操作系统的版本并安装。
    • 注意: 在安装过程中,SourceTree 会提示你登录 Atlassian 账号,这是为了同步你的仓库凭证等,建议注册一个。
  3. 配置 Git 用户信息:

    • 这是非常重要的一步,因为你的每一次提交都会记录这个信息,打开终端 (Windows上是 Git Bash 或 CMD)。
    • 运行以下命令,将 Your Nameyour.email@example.com 替换成你自己的信息:
      git config --global user.name "Your Name"
      git config --global user.email "your.email@example.com"
    • 这个配置只需要设置一次,Git 会永久记住。

第二部分:SourceTree 界面概览

安装并打开 SourceTree 后,主界面看起来可能有点复杂,但别担心,我们把它拆解开。

主界面解析

  1. 左侧导航栏:

    SourceTree怎么用?新手入门教程指南-图2
    (图片来源网络,侵删)
    • Repositories: 你所有克隆或创建的本地仓库列表。
    • Worktrees: (高级功能) Git Worktree 的管理。
    • Bitbucket: (如果你使用 Bitbucket) 快速访问你的 Bitbucket 仓库。
    • GitHub: (如果你连接了 GitHub) 快速访问你的 GitHub 仓库。
  2. 中央区域:

    • 这是信息展示的核心区域,根据你左侧选择的仓库,它会显示不同的信息。
    • Summary (概览): 显示仓库的基本信息,如当前分支、未提交的更改、远程仓库状态等。
    • Files (文件): 显示所有被 Git 追踪的文件,这里是你进行提交操作的主要场所。
    • History (历史): 显示该分支的提交历史记录,像一个时间线。
    • Branches (分支): 显示所有本地和远程分支的列表。
    • Remotes (远程): 显示你配置的远程仓库(如 GitHub, GitLab 等)。
    • Stashes (暂存): 显示你保存的临时工作。
  3. 顶部工具栏:

    • 包含了最常用操作的快捷按钮,如 Pull, Push, Commit, Rebase 等。

核心功能区域介绍

  • 未提交的更改: 这是 SourceTree 的核心工作区,你可以看到你修改过的文件。
    • 已暂存的更改: 你选择了要包含在下一次提交中的文件。
    • 未暂存的更改: 你修改了但还没决定是否提交的文件。
    • 操作: 点击 号可以暂存文件,点击 号可以取消暂存,你可以对文件进行 Diff (查看差异) 或 Discard (放弃更改)。

第三部分:核心工作流 - 克隆、提交、推送

假设你已经有一个远程仓库(比如在 GitHub 上)。

克隆一个远程仓库

  1. 点击左侧导航栏的 号,选择 Clone
  2. 在弹出的窗口中,粘贴你的远程仓库 URL (从 GitHub/GitLab 的 Clone or download 按钮获取)。
  3. 选择一个本地路径来存放仓库。
  4. 点击 Clone,SourceTree 会自动下载仓库的所有文件和历史记录。

创建和切换分支

分支是 Git 的精髓,它允许你在不影响主代码的情况下进行开发。

  1. 在左侧导航栏,找到你的仓库,点击 Branches
  2. 你会看到 mastermain 分支,这通常是主分支。
  3. Branches 列表上方,点击 New Branch
  4. 输入新分支的名称(feature/user-login),然后点击 Create
  5. 新分支会自动切换,现在你就在这个新分支上进行工作了。

修改文件并提交

这是最频繁的操作。

  1. 用你的代码编辑器(如 VS Code, Sublime Text)打开你克隆的本地文件夹。
  2. 修改任意一个文件,README.md
  3. 回到 SourceTree,在中央区域的 Files 标签下,你会看到 README.md 出现在 未暂存的更改 列表中。
  4. 点击文件名旁边的 Diff 按钮,可以查看你具体修改了哪些内容。
  5. 在下方的 Summary 输入框中,写下这次提交的说明("Update README with installation instructions")。
  6. 点击 Commit 按钮。
  7. SourceTree 会弹出一个确认窗口,确认你的提交信息,然后再次点击 Commit,你的更改就被保存到本地仓库了!
    • 最佳实践: 提交信息要清晰、简洁,说明你做了什么。

推送你的更改到远程仓库

你刚才的提交只存在于你的本地电脑上,为了让其他人看到,或者在其他设备上继续工作,你需要推送到远程仓库。

  1. 确保你当前在正确的分支上(feature/user-login)。
  2. 点击顶部工具栏的 Push 按钮。
  3. SourceTree 会弹出一个窗口,显示你要推送到哪个远程仓库的哪个分支,确认无误后,点击 Push
  4. 稍等片刻,你的更改就成功上传到 GitHub/GitLab 上了!

第四部分:协作工作流 - 抓取、拉取、合并

当团队协作时,你需要同步其他人的代码。

抓取 和拉取 的区别

  • Fetch (抓取): 从远程仓库下载最新的信息(比如新的提交、新的分支),但不会合并到你当前的分支,它只是“看一看”远程有什么新东西,SourceTree 会自动在后台执行 fetch
  • Pull (拉取): Fetch + Merge,它会从远程仓库下载最新内容,并自动合并到你当前的分支,对于简单的、没有冲突的更新,直接用 Pull 最方便。

操作: 点击顶部工具栏的 Pull 按钮,SourceTree 会自动处理合并。

解决合并冲突

当你在本地修改了一个文件,而其他人也修改了同一个文件的同一个部分时,Git 无法自动决定谁的版本是正确的,这时就会产生合并冲突

  1. 尝试 Pull 时,SourceTree 会提示你发生了冲突。
  2. 回到 SourceTree 的 Files 视图,你会看到有冲突的文件被标记了出来。
  3. 双击有冲突的文件,SourceTree 会打开一个合并工具
    • 合并工具通常会分三栏显示:
      • Your changes: 你的版本。
      • Incoming changes: 远程仓库的版本。
      • Merged result: 你需要手动编辑并最终保存的版本。
  4. 仔细比较两个版本,手动在 Merged result 中编辑,保留你需要的代码,删除 Git 自动生成的冲突标记(如 <<<<<<<, , >>>>>>>)。
  5. 保存合并后的文件。
  6. 回到 SourceTree,这个文件会从“冲突”状态变为“已暂存”状态。
  7. 像平常一样写一个提交信息("Resolve merge conflict in user.js"),然后点击 Commit,这次提交就是解决冲突的提交。

同步你的分支

这是一个很好的习惯,可以保持你的分支与远程分支同步。

  1. 在左侧导航栏,点击你的仓库,然后选择 Branches
  2. 在分支列表中,找到你的分支(如 feature/user-login)和它对应的远程分支(如 origin/feature/user-login)。
  3. 右键点击你的本地分支,选择 Pull,确保它包含了最新的远程更改。
  4. 右键点击你的本地分支,选择 Push,将你的本地提交推送到远程。

第五部分:高级操作与技巧

查看历史记录和比较差异

  • 查看历史: 在 History 标签下,你可以看到所有提交的列表,点击任意一个提交,可以查看该提交的详细信息(作者、时间、提交信息)和修改的文件。
  • 比较差异:
    • 比较两个提交: 在历史记录中,按住 Ctrl (Windows) 或 Cmd (Mac) 键,同时点击两个提交,然后右键选择 Compare,这可以看到两个提交之间的所有改动。
    • 比较工作区和最新提交: 在 Files 视图中,点击 Diff 按钮,可以比较你当前未提交的修改和最新提交之间的差异。

使用 Stash (临时保存)

当你正在一个分支上工作,做到一半时,突然需要切换到另一个分支去修复一个紧急 Bug,这时 Stash 就派上用场了。

  1. Files 视图中,确保你已经暂存了所有想保留的更改。
  2. 点击顶部工具栏的 Stash 按钮。
  3. 输入一个 Stash 的描述(可选),然后点击 Stash
  4. 你的工作区被“藏”了起来,变得和最新提交一样干净了,你可以放心地切换分支去工作。
  5. 当你回到原来的分支时,点击 Stash 按钮,选择你之前保存的 Stash,然后点击 Pop,你的修改就会恢复回来。

变基 - 让历史更整洁

Merge 会产生一个“合并提交”(Merge Commit),这会让提交历史看起来很杂乱。Rebase (变基) 可以将你的提交“移动”到最新分支的顶部,创造出一条线性的、更整洁的历史。

场景: 你在 feature 分支上工作,master 分支也有了新的提交。

  1. 确保你的 feature 分支是最新的(已经 Pull 了远程的 master)。
  2. 在 SourceTree 中,右键点击你的 feature 分支。
  3. 选择 Rebase onto...
  4. 在弹出的窗口中:
    • Base onto: 选择你想要基于其进行变基的分支,通常是 mastermain
    • Branch to rebase: 确认是你的 feature 分支。
  5. 点击 Rebase,SourceTree 会尝试自动应用你的每一个提交,如果遇到冲突,解决方法和 Merge 冲突一样。
  6. 变基成功后,你的 feature 分支的提交历史会看起来像是从 master 的最新提交直接开始的。
  7. 最后一步: 因为变基是“重写历史”,你需要强制推送你的分支,右键点击你的 feature 分支,选择 Push,在弹出的窗口中勾选 Force Push警告: 强制推送会覆盖远程分支的历史,通常只在确认团队成员没有基于该远程分支工作时才使用。

创建和管理 Pull Request (在 GitHub/GitLab 上)

Pull Request (PR) 是协作的核心,它用来通知团队成员你完成了一项功能或修复了一个 Bug。

  1. 确保你的分支已经 Push 到了远程仓库。
  2. 在 SourceTree 中,右键点击你的本地分支(feature/user-login)。
  3. 选择 Create Pull Request
  4. SourceTree 会自动在浏览器中打开 GitHub/GitLab 的页面,并帮你填写好 PR 的标题和描述,你只需要补充一些细节,然后点击 Create pull request 即可。

第六部分:常见问题与最佳实践

常见问题解答

  • Q: Push 失败,提示 "You are not allowed to push code to this branch"

    • A: 通常是因为主分支(如 master)是受保护的,不允许直接推送,正确的做法是创建一个特性分支,开发完成后,通过 Pull Request 的方式让代码合并到主分支。
  • Q: 我误操作了,想撤销上一次提交怎么办?

    • A: 在 History 中找到那个提交,右键点击,选择 Reset
      • Soft Reset: 撤销提交,但保留更改在工作区(文件还在,已暂存)。
      • Mixed Reset: 撤销提交,并将更改放回工作区(文件还在,未暂存),这是最常用的。
      • Hard Reset: 撤销提交,并永久删除所有更改。非常危险,请谨慎使用!
  • Q: SourceTree 提示我需要登录 Atlassian 账户,但我不想登录怎么办?

    • A: SourceTree 支持使用系统自带的 Git 凭证,可以在设置中关闭 Atlassian 登录选项,但可能会失去一些云服务的集成功能。

最佳实践建议

  1. 小步快跑,频繁提交: 不要把所有修改攒在一起再提交,每次完成一个小的功能点或修复一个 Bug 就提交一次,这样你的提交历史会很清晰。
  2. 写清晰的提交信息: 使用现在时态,"Add user login feature" 而不是 "Added user login feature"。
  3. Pull Request 是你的代码名片: 在 PR 中详细描述你的改动、原因以及如何测试,这有助于他人进行代码审查。
  4. 保持分支简洁: 一个分支只做一件事,开发新功能用 feature/xxx,修复 Bug 用 bugfix/xxx
  5. 定期同步: 在开始新工作前,先 Pull 一下远程仓库的最新代码,避免你的工作基于过时的代码。
分享:
扫描分享到社交APP
上一篇
下一篇