本文已中止更新,點擊
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 中刪除本地或者遠程的一個分支,刪除分支是個很謹慎的操做,須要慎重。