用 Sourcetree 實現基礎版本管控
前言
寫程式的人一定會使用 Git ,使用 Git 來進行版本管控或專案合作是工程師的必備技能!而 Sourcetree 則是非常棒的輔助程式,讓您可以透過 GUI 的管理界面更好的使用 Git,因此不管您是使用 Github 還是 Gitlab 的開發者,相信這篇文章都會對您很有幫助!
Sourcetree 的 GUI 管理界面,讓您可以在 Sourcetree 內看完整的分支線圖,或在本地端修改的檔案 Commit 到分支上,也能完成在節點加上標籤。
接下來就跟著本篇教程一步一步學會這項重要的基本功:
起步
安裝 Sourcetree
這邊提供 Sourcetree 的下載點,如果您還沒有下載,請點擊以上連結便可以成功安裝。
要使用這個軟體必須有一點 Git 的基本知識,如果沒有學過的人,可以到以下推薦網址學習:
如果只是對一些術語不熟悉或是中英文不太了解,參考此篇即可:Git 術語及中英文對照
New Repository
下載後,初次使用必須先按下[New Respostory],將想做 Git 的專案加入到 Sourcetree 中:
如果您在 Github 或 Gitlab 中已經有專案,也可直接從遠端 clone 到 Sourcetree 中。
分支(Branch)
創建新分支(Create new branch)
創建完成後,進入到該專案中,左邊就是遠端的分支,在畫面中我們可以看到一個名為 [master] 的分支。
如果要在本地端建立分支,只需要按下 [Branch] 鈕,並按下 [Create Branch]。
其中的細項 [Checkout new branch] 表示在創建這個分支的時候是否切換到該分支來工作,請您輸入一個合適的名字,便能進行下一步。
分支合併(Branch merge)
Git 的好處在於開發不同功能時,能夠使用不同的分支,當該功能開發完成而且要出版時,可以透過合併的方式,將完善的功能合併到主分支,甚至可以透過選擇分支的節點來合併,不一定要到最新的功能。
而使用 Sourcetree 的優勢則在於能夠藉由可視化線圖讓每位合作的開發者能夠很清楚的了解每一次功能變動造成的影響,也知道之後如何做出調整,進而達成更有效率的合作。
在 Sourcetree 中,只需要在想要合併的分支按下 [Merge] 便可以達成分支合併。
分支刪除(Branch Delete)
可以刪掉或重新命名本地的分支,而遠端的分支則需要你擁有權限才能刪除。在想要刪除的分支點擊右鍵,在選取 [Delete xxx] 即可。
處理檔案變更
提交檔案(Commit Files)
在更改檔案後,我們會將要提交的檔案加入 Staged files ,在 [File Status] 會有更改過的檔案列表,在「Staged files」的檔案表示是經過 git add
後要 Commit 的檔案,在「Unstaged Files」則是沒有要 Commit 的檔案。
Terminal 中,則是輸入
git status
來查看是否將更改後的檔案加入到 「Staged files」,紅色代表未加入。
綠色則表示該檔案已經加入「Staged files」,是可以提交的狀態。
確認過後,按下左上方 [Commit] 圖形鈕,便能夠看到以上頁面,按下 [commit] 就成功提交檔案到本地端分支了。
下方空格可以說明這次的提交做了什麼,讓其他合作開發清楚了解每次提交的含義與結果,範例如下圖:
另外,提交只會提交到本地端分支的檔案庫,並不會提交到遠端分支的檔案庫。
如果提交後發現錯誤,要取消提交,則可以在在想取消的部份點擊右鍵,再選取 [Reverse commit] 即可!
Terminal 中,則是輸入
git reset -soft HEAD^
指令。
推送至遠端分支(Push to remote branch)
接下來,就是將本地端分支的檔案庫更改部分推送到遠端分支的檔案庫,只需要按下 [Push] 圖形鈕,選擇要推送的分支,再點擊 [OK] 即可!
Terminal 中,則是輸入
git push -u origin master
指令。
Small Tips
Git 可以在分支上加上 Tags,讓你使用 Tags 來快速跳到某個節點。只要在想要加上 Tag 的節點點擊右鍵 → [Tag…] 便可以加入,若想要將 Tag Push 到遠端的 Branch,勾選 Push Tag 即可。
分支上加入 Tag
Search 可以用來搜尋 Commit 記錄。
History 可以用來看 Commit 歷史。
結論
以上就是最基本的 Sourcetree 操作,請在觀看本篇教學文的同時跟著操作,如此便能完整的學會 Sourcetree 與 Git 的基礎配合,如果有任何問題也歡迎在留言區提出!