在認識git branch後,還有個我們一定要認識的東西:tag。
tag顧名思義就是標籤的意思,他可以標示某一個commit,我們通常會用在定版的時候。
定版就像是確定一個大的改動,例如我們這次要更新的東西都做好,那就可以定版,從dev放到sit去測試,這時,我們便會打上tag。
我們先前在認識branch時,常常會說要根據功能、根據環境、根據協作人員來分分支,那為什麼不用tag就好呢?原因是branch會隨著你的commit移動,tag不會。舉例而言,我如果開發一個功能,用branch的話,我今天進度10%,那我的branch會停留在10%的commit,當我下周完成時,branch就會停留在最新的100%commit。但如果我使用的是tag,我就必須每天都打一個tag,用以紀錄每天的進度。
所以branch比較像是會移動的tag,兩者的使用時機是不同的。
branch用在還會更新的地方,例如功能開發(會一直有進度)、分開環境(每個環境要有分開的分支紀錄,總不能每次都打一個tag說:這是sit的01版)。
tag則用在不容易變動(或是沒有預期會變動)的地方,例如定版