SourceTree 代碼庫管理工具





本文已中止更新,點擊 此連接 查看本文最新內容 !!!

html




一、SourceTree

二、使用方法

2.1 Clone 項目到本地

  • 打開 SourceTree,點擊 New Repository => Clone from URL, 而後複製倉庫地址到 SourceTree 中的 Source URL 中,本地倉庫的位置和名稱能夠隨意修改。點擊 clone 便可。這樣就能把遠程倉庫中的項目 clone 到本地了。工具

2.2 SourceTree 主界面

  • clone 項目完成後,SourceTree 中看到以下:fetch

    • 上面的任務欄分別有 commit(提交)、Pull(更新代碼)、Push(推送代碼)、Fetch(抓取代碼),Branch(新建分支)、Merge(合併代碼)、Stash(暫存代碼狀態)。ui

    • 左側中的 WORKSPACE 表示本地的工做區,File status 中能夠看到本地文件的改變狀態,History 中是 commit 歷史。下面的 BRANCHES 顯示的是本地的分支。REMOTES 顯示的是遠程的分支。url

    • 下方的狀態欄顯示本次提交的修改文件。以及修改文件中修改的代碼。3d

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

相關文章
相關標籤/搜索