我有以下git
工作流程:擠壓是否會落實到一個最佳實踐中(針對此特定工作流程)?
- 創建新的特性分支
- 的特性分支工作
- 經常提交
- 一旦功能非常齊全,合併到
master
分支 - 沖洗和重複
但是,有時候,我有需要從主服務器恢復整個功能。這可能涉及很多revert
ing。 ()需要恢復某個功能的原因是我有一個網站可以使用一個回購站,從那裏我們使用一個腳本將站點部署到我們的生產站點或分段站點,兩者都是從我們的主分支完成的。不要問,這就是我曾經接受過的工作,有時候,我正在做一些我要做的事情,但是需要立即做出改變,所以我需要一些方法來按順序進行修改清理回購)
我在想最簡單的方法是如果每個功能分支只有一個提交。然後我可以提交revert
。所以很自然,我想在合併到master
之前,將特徵分支的所有提交合併爲一個。
所以現在我的工作流程將類似於:
- 創建新的特性分支
- 的特性分支工作
- 經常提交
- 一旦功能非常齊全git的變基-i HEAD〜number_of_commits (或者如果遠程分支可用,origin/feature_branch)
這個邏輯有什麼問題嗎?它是否違背任何最佳實踐?我自己做了一些測試,整個工作流程似乎順利運行並解決了我的問題,但我想通過其他(更聰明的)Git-ers運行這個想法來查看它是否有任何問題。
謝謝!
你看過'git merge --squash'嗎?爲什麼你選擇'rebase'而不是使用'squash merge'的任何特殊原因?在執行「合併」時,您不會有線性歷史記錄,但功能分支中的提交仍然具有線性歷史記錄,並且您只需進行一次合併。 – Tuxdude 2013-05-08 20:03:29
我只是看着我的情況。非常好。我不知道我會用更多的東西(也許''rebase'因爲我經常扔掉這些分支),但在我的功能分支上有歷史記錄是一件好事。謝謝你的幫助! – 2013-05-08 21:21:31
@Tuxdude:考慮做出答案。它可能*是答案。 – sleske 2013-05-08 21:24:18