2011-11-30 47 views
2

我已經做了一些改變(r5,6,7,8)掌握和推動起源。其他人拉了。現在主人應該在2天內部署,但是有緊急情況需要今天出去。最佳做法是什麼?我是否從r4創建了一個新分支並部署了該分支,然後將此分支合併到master? IRC上有人說暫時回覆他們,承諾,然後解除他們,但我正在努力掌握如何更好或如何運作。如何在git中對master進行緊急修復?

回答

2

IRC上有人說暫時恢復他們,承諾,然後解除他們,但我試圖掌握如何更好或如何工作。

這將創建一個極其醜陋的歷史:而不是R4,R5-R6-R7-R8-解決你的歷史看起來像R4,R5-R6-R7-R8-X8-X7-5233-X5- fix-r5-r6-r7-r8全部變更後。

關閉「r4」創建分支是最佳解決方案。你應該有一個生產部門,無論如何,這是不更新,除非有東西部署到生產...

+0

恢復不*重寫歷史記錄。這就是整個觀點。 – Cascabel

+0

啊,誤解了。修正了我的答案。 – ThiefMaster

1

這是一個好主意。 git revert創建提交其抵消了給定的提交,所以你可以這樣做:

git checkout master  
git revert <bad commit> # repeat as necessary 
git push 
# okay, now master is safe again 

git checkout -b bugfix 
git revert <revert-commit> 
# you've reverted the revert; things are broken again 
# fix it all up - you have time now 
git commit 
git checkout master 
git merge bugfix 
git push 

你可以在此做變化,但它的基本規範的方法。

+2

之後的歷史將會非常醜陋。爲什麼不結賬r4並分支提交? – ThiefMaster

+0

@ThiefMaster:我的印象是這些提交中至少有一些被破壞了,首要的任務是確保在修正之前,master不會被破壞。在這種情況下,這真是唯一的辦法。這種事情甚至會在Git的倉庫中發生(然而通常只會恢復一次提交)。 – Cascabel