4
為何 Git-Flow 可能不適合你 « Nelson 寫些 iOS 開發的東東 (nelson.logdown.com)
natsu 積分 0

把該 release 分支的所有檔案(除了 .git 資料夾)複製一份出來,切到 master 分支然後把所有檔案(除了 .git 資料夾)都刪除,然後把剛剛複製的檔案搬過來。你沒看錯,我們用直接覆蓋檔案的方式,而不是用 merge 指令,這樣會省掉很多麻煩。

應該不至於需要把所有檔案都刪除吧?Git 不是有 fast-forward1 的功能嗎?

chchwy 積分 0

我猜這應該是怕merge過程出錯,不是想用 fast-forward。

如果全部都刪掉再重加,就保證 code 一定是最新的,不用顧慮conflict。反正他們團隊從來不在 master 上開發,所以只有其他分支單向合進 master

natsu 積分 1

那應該也可以用 reset1 的方式直接把 master 分支設成與 release 分支相同

這樣連全部都刪掉再重加的動作都不用,就可以保證 code 一定是最新的,而且不用顧慮 conflict ...

不過這麼做的前提是要確定 release 分支的檔案一定是最新版 ...

popcorny 積分 1

感覺這篇文章的 master branch 可以不用耶,雖然他這麼說

master 上的每個 commit 都是正式發行的版本,所以每個 commit 都會打上一個 tag,例如 v1.2.3 或是 v1.2.3-客戶A ,我們把 master 分支當作版本倉庫,需要哪個版本就去 master 或是 tag 找。

但事實上,在 release branch 打 tag 就足夠了。何必需要 master branch? 最後還是可以在 git tag 上面找到所有的 release tag 不是嗎?

natsu 積分 0

但事實上,在 release branch 打 tag 就足夠了。何必需要 master branch? 最後還是可以在 git tag 上面找到所有的 release tag 不是嗎?

master branch 可用來指出最新的正式發行版本。

人為的從 tag 上的版本號來看也可以找得出最新的正式發行版本,但是若 tag 的數量多的話可能就不好找了。

popcorny 積分 1 編輯於

最新的版本應該都從最新的 release branch 來。而且git tag | grep release | sort 就很快找到最新版號了