1. 程式人生 > >SourceTree 程式碼庫管理工具

SourceTree 程式碼庫管理工具

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