1、SourceTree

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 中删除本地或者远程的一个分支,删除分支是个很谨慎的操作,需要慎重。

SourceTree 代码库管理工具的更多相关文章

  1. Visual Studio 2013编辑器+SourceTree代码管理工具及扩展工具

    Visual Studio 2013: 美国微软公司的编辑开发工具 扩展工具: Resharper:进行深度代码分析,函数深度查询(ctrl+鼠标左): Grunt:是基于Node.js的项目以自动化 ...

  2. GitHub Desktop 代码库管理工具

    1.GitHub Desktop 简介 GitHub Desktop 是用于 GitHub 项目版本控制软件. 官网下载地址 GitHub Desktop 其它下载地址 GitHub Desktop ...

  3. 代码管理工具 Git

    之前一直使用微软的代码管理工具TFS(Team Foundation Server)..NET CORE 2.0的发布后,考虑到.NET CORE项目可以跨平台,准备把项目迁移到.NET CORE 环 ...

  4. 代码管理工具 --- git的学习笔记二《git的工作原理》

    通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便 ...

  5. iOS第三方库管理工具

    作者:彷徨iOS 原文地址1:http://iostree.sinaapp.com/?p=78 原文地址2:http://blog.csdn.net/wzzvictory/article/detail ...

  6. bower——库管理工具

    bower了解: 随着网页功能的复杂化,各种网页效果的实现,现在单一的一个或两个库文件或许已经不能够满足我们的需要,但当有很多的库文件的时候,手动编辑已经不能胜任,对于引入的库文件而言,往往都是牵一发 ...

  7. java接口自动化(五) - 企业级代码管理工具Git的配置

    1.简介 上一篇讲解完如何安装Git后,今天宏哥趁热打铁讲解一下Git的使用,要想使用Git,我们还需要做一些准备工作,首先你的拥有一个Git账号,所以如果你没有的话,就快速注册一个吧. 2.Git注 ...

  8. Android代码分析工具lint学习

    1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...

  9. [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS

    [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS 本篇要点:在进阶篇快要结束的时候说说源代码管理器,我们的开发,不是一个人可以完成的事,团队协作很重要,而且 ...

随机推荐

  1. Hibernate中得fetch

    fetch ,可以设置fetch = "select" 和 fetch = "join" 用一对多来举例:fetch = "select"是 ...

  2. tail 命令

    转自:http://www.cnblogs.com/peida/archive/2012/11/07/2758084.html tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项 ...

  3. (算法)等概率选出m个整数

    题目: 从大小为n的整数数组A中随机选出m个整数,要求每个元素被选中的概率相同. 思路: n选m,等概率情况下,每个数被选中的概率为m/n. 方法: 初始化:从A中选择前m个元素作为初始数组: 随机选 ...

  4. 10 个超炫绘制图表图形的 Javascript 插件【转载+整理】

    原文地址 现在,有很多在线绘制图表和图形(Charts and Graphs)的 JavaScript 插件,这些插件还都是免费,以及图表库.这些插件大量出现的原因是基于一个事实:人们不再依赖于 Fl ...

  5. javascript设计思维

    //一.把参数当作私有变量使用 (function (a, b) { //把参数当作私有变量使用,省略了var,也节省了行数 console.log(b) //undefined,所有未赋值的变量均为 ...

  6. bash和shell的关系

    bash是borne again shell的缩写,它是shell的一种,Linux上默认采用的是bash. shell脚本中的方法带不带function的区别,例如: function foo () ...

  7. SqlServer2012自增主键跳跃增长的问题解决方案

    1.问题:SqlServer2012自增主键插入几条数据,然后重启服务,然后再插入几条数据,发现重启后插入的记录ID出现跳跃. 2.解决方案: Open SQLServer configuration ...

  8. dom4j解析以及生成xml字符串测试

    public static void main(String[] args) { String xmlStr = "<ybjcVo>"+ "<zbGri ...

  9. java相关知识集锦

    java语言基础知识: Java8 Stream语法详解 不用循环 java 8系列之Stream的基本语法详解 java8 stream filter等功能代替for Java中try catch ...

  10. gdb 小技巧

    https://www.gitbook.com/book/wizardforcel/100-gdb-tips/details