SourceTree版本控管(四) - 基本功能介紹 Commit / Branch
- Commit
本系列將會以Unity專案做說明,當然版本控制並不限於軟體開發,我們也可以只建立幾個簡單的記事本與資料夾來觀察其中的變化。
首先我們在Unity專案中建立兩個資料夾與一個場景。
回到SourceTree點選Working Copy,會發現下方的Unstaged files有很多項目,包括了剛剛新增的場景。
接著我們開始準備建立第一次的commit,之後要建立的commit都跟下面的流程無異。
勾選Unstaged files會將所有項目移到Staged files的欄位之中。然後點選下方的Commit message文字框。
這裡可以針對每一次的commit做描述,方便日後的管理,確認之後按下Commit。
我們可以看到Branches的欄位中多了一個master的項目,在右方的圖表會看到多出了一個節點,每一個節點代表一個commit。
接著回到Unity新增第二個場景。
再次回到SourceTree可以發現多了一行Uncommitted changes,這是因為SourceTree偵測到當前專案狀態與最後的最後提交的commit出現了差異。
我們要將目前的專案狀態保存下來,照著先前流程操作再次建立一個commit。
點選master之後會看到右邊的圖表多了一個節點,帶有白色漸層的節點表示目前專案的狀態歸屬。
我們也可以在不同的commit之間切換,只要點擊兩下左鍵即可,這種在不同commit之間互相切換的動作稱為checkout。
切換commit之後,Unity Editor中檔案結構也回復到先前的版本了。
- Branch
Git使用者隨時可以依據當前的commit版本建立一個新的branch,在新增的branch上建立的任何commit都不會影響到master的狀態。
因為這樣的特性我們可以使用branch來開發一些新的功能或者做一些測試,等到新功能完成之後再合併回master。我們也可以隨時捨棄這條branch,並且回到master的commit繼續開發。
首先回到SourceTree,確認專案版本處在master最後一個commit下,並且點選Branch按鈕。
在New Branch欄位上為新的branch命名,並且按下Create Branch。
接著可以看到Branches多了一個項目,此時兩個branch都處在同一個commit版本,這裡可以看到AudioPlayer顯示為粗底,代表目前專案版本處在AudioPlayer這個branch裡面。
我們希望開始在新的branch增加功能,首先確認目前專案處在新的branch路線上,接著回到Unity Editor,在Scripts路徑下新增一個腳本,並且在SourceTree建立一個新的commit版本。
我們可以從圖表中看到多出了一個新的節點,且這個節點附屬於AudioPlayer這個branch。
接著我們切換到master branch,Unity Editor的檔案架構則又回到了先前的狀態中。
在master branch下新增一個prefab。
從圖表中可以看到,master的狀態與AudioPlayer的狀態已經開始產生分歧,新的狀態變化依附在master branch。
將當前的狀態建立一個commit版本。
我們可以試著切換不同的branch來觀察專案版本之間的差異。
我們不只可以在master建立branch,也可以在其他的branch上分歧出新的branch。
隨著開發的功能越來越多,一個repository可能會同時存在很多個branch,如果在開發時沒有好好規劃,我們將會看到一堆複雜交錯的分歧線,這時候反而很難管理,這是使用branch必須要好好注意的地方。
總結:
一個commit代表一個版本進度,我們可以在不同的commit之間切換。
SourceTree版本控管(五) - 基本功能介紹 Merge / Rebase
留言
張貼留言