SourceTree 代码库管理工具
1、SourceTree
简介
- SourceTree 是拥有可视化界面的项目版本控制软件,适用于 git 项目管理,window、mac 均可用。
官网下载地址
其它下载地址
- Sourcetree v2.7 for Mac,密码:41km。
- Sourcetree v2.6.3a for Mac,密码:5qmx。
- SourceTree v2.4.1a for Mac,密码:55nx。
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 代码库管理工具的更多相关文章
- Visual Studio 2013编辑器+SourceTree代码管理工具及扩展工具
Visual Studio 2013: 美国微软公司的编辑开发工具 扩展工具: Resharper:进行深度代码分析,函数深度查询(ctrl+鼠标左): Grunt:是基于Node.js的项目以自动化 ...
- GitHub Desktop 代码库管理工具
1.GitHub Desktop 简介 GitHub Desktop 是用于 GitHub 项目版本控制软件. 官网下载地址 GitHub Desktop 其它下载地址 GitHub Desktop ...
- 代码管理工具 Git
之前一直使用微软的代码管理工具TFS(Team Foundation Server)..NET CORE 2.0的发布后,考虑到.NET CORE项目可以跨平台,准备把项目迁移到.NET CORE 环 ...
- 代码管理工具 --- git的学习笔记二《git的工作原理》
通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便 ...
- iOS第三方库管理工具
作者:彷徨iOS 原文地址1:http://iostree.sinaapp.com/?p=78 原文地址2:http://blog.csdn.net/wzzvictory/article/detail ...
- bower——库管理工具
bower了解: 随着网页功能的复杂化,各种网页效果的实现,现在单一的一个或两个库文件或许已经不能够满足我们的需要,但当有很多的库文件的时候,手动编辑已经不能胜任,对于引入的库文件而言,往往都是牵一发 ...
- java接口自动化(五) - 企业级代码管理工具Git的配置
1.简介 上一篇讲解完如何安装Git后,今天宏哥趁热打铁讲解一下Git的使用,要想使用Git,我们还需要做一些准备工作,首先你的拥有一个Git账号,所以如果你没有的话,就快速注册一个吧. 2.Git注 ...
- Android代码分析工具lint学习
1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...
- [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS
[.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS 本篇要点:在进阶篇快要结束的时候说说源代码管理器,我们的开发,不是一个人可以完成的事,团队协作很重要,而且 ...
随机推荐
- Oracle使用技巧及PL/SQL Developer配置
Oracle使用技巧及PL/SQL Developer配置 摘自:http://livenzhao.spaces.live.com/blog/cns!6E368BE9F6DDD872!595.entr ...
- Android学习之Android studio TraceView和lint工具的使用具体解释
上次讲述了一下Android studio Terminal的使用配置,今天又学习了一下关于Traceview和lint工具的使用. 首先来讲lint吧: Android lint工具是Android ...
- NSMutableURLRequest Http 请求 同步 异步
#pragma mark get country code//同步 -(void)getFKjsonCountryCode { dispatch_async(dispatch_get_global_q ...
- PAT 1065 1066 1067 1068
pat 1065 A+B and C 主要是注意一下加法溢出的情况,不要试图使用double,因为它的精度是15~16 ...
- photoshop 雪碧图制作
图片拖入后 一般取同行同列最高最宽 自动在所选目录生成 打开: 修改 四次请求有点多啊. 打开 (下载)css sprite 自动生成坐标地址. 不过我们要把它排远一点 OK了. 我们生成以后: 坐标 ...
- C# ListView用法
ListView是个较为复杂的控件 1.定义 把它拽进来,系统会自动在Designer.cs里添加一个 this.listView1 = new System.Windows.For ...
- C/C++中extern关键字详解(转)
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern ...
- Excel之定位和查找
在数据量比较少的情况下,我们要到达Excel中某一位置时,通常会用鼠标拖动滚动条到达需要的位置,查找某已知固定的值,用Ctr+F,在查找内容中输入对应的值即可一个个的查找到其对应的位置.但当数据量较多 ...
- centos nginx+php+mysql 安装libiconv不成功
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar -zxvf libiconv-1.13.1.tar.gzcd l ...
- PHP 反射 初步测试
<?php //php反射机制 /* //用途 1 该扩展分析php程序,导出或提取出关于类,方法,属性,参数等详细信息,包括注释 //Reflection可以说是对php库函数: /class ...