SourceTree 代码库管理工具

1、SourceTree

  • 简介

    • SourceTree 是拥有可视化界面的项目版本控制软件,适用于 git 项目管理,window、mac 均可用。
  • 官网下载地址

  • 其它下载地址

2、使用方法

2.1 Clone 项目到本地

  • 打开 SourceTree,点击 New Repository => Clone from URL, 然后复制仓库地址到 SourceTree 中的 Source URL 中,本地仓库的位置和名称可以随意修改。点击 clone 即可。这样就能把远程仓库中的项目 clone 到本地了。

2.2 SourceTree 主界面

  • clone 项目完成后,SourceTree 中看到如下:

    • 上面的任务栏分别有 commit(提交)、Pull(更新代码)、Push(推送代码)、Fetch(抓取代码),Branch(新建分支)、Merge(合并代码)、Stash(暂存代码状态)。

    • 左侧中的 WORKSPACE 表示本地的工作区,File status 中可以看到本地文件的改变状态,History 中是 commit 历史。下面的 BRANCHES 显示的是本地的分支。REMOTES 显示的是远程的分支。

    • 下方的状态栏显示本次提交的修改文件。以及修改文件中修改的代码。

2.3 创建新项目

  • 如果上述是别人的一个项目,那么此时你就可以在本地进行开发了。但是如果是你自己要在远程创建自己的项目,那么下面你要在本地先创建一个项目。以 Xcode 创建一个 iOS 项目为例,创建的项目名称为UseSourceTree_iOS. 然后把该项目拖入到 clone 下来的本地仓库中。拖入完成后,SourceTree 就显示如下。

  • 可以在 SourceTree 中可以看到工作区中的改变,比如哪些文件被修改,以及修改的内容。

2.4 暂存文件

  • 本地做了修改后,可以看到文件都还是在 Unstaged files 中,勾选你要提交的文件,然后文件就会到 Staged file 中,这个操作对应的命令就是 git add ,即把文件从工作区放到暂存区。操作完成后,如下所示。

2.5 Commit 提交代码

  • 此时就可以进行 commit 操作了。点击左上角的 commit。在 commit 的时候强烈推荐写上注释。

  • 完成 commit 之后,提交历史就会变成如下所示。1 ahead 表示本地提交比远程提交领先一次 commit。

  • 来到不同的分支,比如 master 分支,点击不同的 commit History,可以查看到文件的修改,非常的方便。可视化工具对于 code review 非常有利。

2.6 Pull 更新代码

  • 本地完成 commit 之后,就需要向远程仓库提交代码了,个人建议,在 Push 之前,先进行 Pull。

  • 但是要注意,pull = fetch + merge,你拉取代码的时候选择的是 pull 还是 fetch,还是使用 rebase,这个要根据你的个人习惯,最主要的是要根据你团队的 Git 工作流来操作。个人的建议是用 git pull –rebase 命令,相当于使用 git fetch + git rebase 命令,而不是使用 merge,这主要是为了保持树结构和历史的干净(推荐去了解一下 git merge 和 git rebase 的区别)。

  • 如果其他开发者向远程仓库提交了代码,那么在你的 SourceTree 中就会显示如下。

  • 在你本地的 master 分支下,可以看到 1 behind,表示你本地的分支已经落后于远程分支 1 commit 了,可以选择 Pull 来更新代码。

  • 点击上方的 Pull 拉取代码。

  • 在进行 PUll 的时候,可以选择远程的分支,同时如果勾选了最后一个 Rebase instead of merge,表示使用 rebase 命令,而不是 merge。

2.7 Push 推送代码

  • 完成更新代码后,就可以向远程提交代码了。点击上方的 Push,弹出如下对话框。

  • 在提交的时候,选择要提交的分支即可。此时可能需要你输入 Github 或者其他的远程的用户名和密码,输入即可。

  • 注意:此时输入的用户名和密码与 .git 配置里面的 name 和 email 不是同一个概念。此时要你输入的用户名和密码只和你的远程服务器有关,和 git 无关,因为你要向服务器推送代码,必然要有权限,这个用户名和密码相当于权限。但是 .git 里面的 name 和 email 只是作为你 git 这个工具标记而已,和远程服务器没有关系。

  • Push 完代码后,可以在提交历史中看到自己和别人的提交。

  • 此时,本地和远程已经保持了同步,所以原来的 1 aHead 就消失了。来到 Github 中,发现代码已经成功提交了。

2.8 检出远程分支

  • 如果远程仓库有其他的分支,那么需要 checkout(检出)远程分支到本地,如图,远程有 dev 分支,双击左侧远程的 dev 分支,即可检出。检出的时候还可以重命名本地该分支的名字。

  • checkout 完成后,本地也就有 dev 分支了。

2.9 推送分支

  • 当你在本地新建某个分支的时候,也可以推送到远程,然后远程就会有该分支了。如下所示,在 SourceTree 中新建了 release 分支,但是远程没有 release 分支。我把该分支进行 Push。

  • 然后就发现远程也有 release 分支了。你要确定是否有某个分支,你也可以去 Github 或者其他远程服务器查看。

2.10 切换分支

  • 在 SourceTree 中经常会出现 track 这个词,表示“跟踪”,表示本地某个分支跟踪远程某个对应的分支。所以,判断是 ahead 还是 behind commit 的时候,都是去和 track 的那个分支进行比较的。双击本地的某个分支即可完成分支切换。

2.11 删除分支

  • 当然你也可以在 SourceTree 中删除本地或者远程的一个分支,删除分支是个很谨慎的操作,需要慎重。

文章目录
  1. 1. 1、SourceTree
  2. 2. 2、使用方法
    1. 2.1. 2.1 Clone 项目到本地
    2. 2.2. 2.2 SourceTree 主界面
    3. 2.3. 2.3 创建新项目
    4. 2.4. 2.4 暂存文件
    5. 2.5. 2.5 Commit 提交代码
    6. 2.6. 2.6 Pull 更新代码
    7. 2.7. 2.7 Push 推送代码
    8. 2.8. 2.8 检出远程分支
    9. 2.9. 2.9 推送分支
    10. 2.10. 2.10 切换分支
    11. 2.11. 2.11 删除分支
隐藏目录