本文已中止更新,点击
html
简介git
官网下载地址服务器
其它下载地址app
打开 SourceTree,点击 New Repository => Clone from URL, 而后复制仓库地址到 SourceTree 中的 Source URL 中,本地仓库的位置和名称能够随意修改。点击 clone 便可。这样就能把远程仓库中的项目 clone 到本地了。工具
clone 项目完成后,SourceTree 中看到以下:fetch
上面的任务栏分别有 commit(提交)、Pull(更新代码)、Push(推送代码)、Fetch(抓取代码),Branch(新建分支)、Merge(合并代码)、Stash(暂存代码状态)。ui
左侧中的 WORKSPACE 表示本地的工做区,File status 中能够看到本地文件的改变状态,History 中是 commit 历史。下面的 BRANCHES 显示的是本地的分支。REMOTES 显示的是远程的分支。url
下方的状态栏显示本次提交的修改文件。以及修改文件中修改的代码。3d
若是上述是别人的一个项目,那么此时你就能够在本地进行开发了。可是若是是你本身要在远程建立本身的项目,那么下面你要在本地先建立一个项目。以 Xcode 建立一个 iOS 项目为例,建立的项目名称为UseSourceTree_iOS. 而后把该项目拖入到 clone 下来的本地仓库中。拖入完成后,SourceTree 就显示以下。版本控制
能够在 SourceTree 中能够看到工做区中的改变,好比哪些文件被修改,以及修改的内容。
本地作了修改后,能够看到文件都仍是在 Unstaged files 中,勾选你要提交的文件,而后文件就会到 Staged file 中,这个操做对应的命令就是 git add ,即把文件从工做区放到暂存区。操做完成后,以下所示。
此时就能够进行 commit 操做了。点击左上角的 commit。在 commit 的时候强烈推荐写上注释。
完成 commit 以后,提交历史就会变成以下所示。1 ahead 表示本地提交比远程提交领先一次 commit。
来到不一样的分支,好比 master 分支,点击不一样的 commit History,能够查看到文件的修改,很是的方便。可视化工具对于 code review 很是有利。
本地完成 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。
完成更新代码后,就能够向远程提交代码了。点击上方的 Push,弹出以下对话框。
在提交的时候,选择要提交的分支便可。此时可能须要你输入 Github 或者其余的远程的用户名和密码,输入便可。
注意:此时输入的用户名和密码与 .git 配置里面的 name 和 email 不是同一个概念。此时要你输入的用户名和密码只和你的远程服务器有关,和 git 无关,由于你要向服务器推送代码,必然要有权限,这个用户名和密码至关于权限。可是 .git 里面的 name 和 email 只是做为你 git 这个工具标记而已,和远程服务器没有关系。
Push 完代码后,能够在提交历史中看到本身和别人的提交。
此时,本地和远程已经保持了同步,因此原来的 1 aHead 就消失了。来到 Github 中,发现代码已经成功提交了。
若是远程仓库有其余的分支,那么须要 checkout(检出)远程分支到本地,如图,远程有 dev 分支,双击左侧远程的 dev 分支,便可检出。检出的时候还能够重命名本地该分支的名字。
checkout 完成后,本地也就有 dev 分支了。
当你在本地新建某个分支的时候,也能够推送到远程,而后远程就会有该分支了。以下所示,在 SourceTree 中新建了 release 分支,可是远程没有 release 分支。我把该分支进行 Push。
而后就发现远程也有 release 分支了。你要肯定是否有某个分支,你也能够去 Github 或者其余远程服务器查看。
固然你也能够在 SourceTree 中删除本地或者远程的一个分支,删除分支是个很谨慎的操做,须要慎重。