2014-02-10 23 views
0

我剛剛看了 http://guides.beanstalkapp.com/version-control/branching-best-practices.htmlgit master/staging/production setup,如何恢復登臺?

他們談論master - >staging - >production設置,我覺得很有道理。

有一件事困擾我,如果我發現臨時存在一個嚴重的錯誤,該怎麼辦?

即假設有需要進行生產的提交,並且有需要在暫存分支中刪除的提交。

我想我需要的方法來做到以下幾點。

1. un-merge commits from `staging` which I don't need 
2. um-merge the same commits from `master` so that `staging` can merge other commits 

有推薦的方法嗎?

回答

0

通常人們不喜歡重寫歷史,因爲您的項目可能會丟失關於設計決策的重要細節和信息。那麼我會建議的是,您決定不想在生產中進行的任何更改,您revert them。這樣,您可以刪除不需要的更改,但可以保留一系列事件,告訴您爲什麼決定放棄某些更改或功能。

要使用此命令,請運行git revert <commit>

一旦你刪除您不需要的從staging承諾,合併staging到您的master分支:

  • git checkout master

  • git merge staging

+0

我想我會從主控制器中執行'git revert'並將其合併到分段中。 (從你的描述有點落後)。遵循Master-> staging-> production的流程。它聽起來更好嗎? – eugene

0

我的合着者的指南。首先讓我糾正你關於舞臺 - >製作部分。本指南不建議將分期合併到生產中。 Staging是一個沙盒分支,它不會被合併到其他任何東西中,因爲它可以包含未完成或被取消的分支。

如果您發現已經合併到穩定(和生產)的分段中的錯誤,只需將它恢復到穩定的「git revert」,即可將穩定合併到生產和部署中。然後,您可以在暫存中恢復它,也可以從穩定分支中重新創建暫存。

當每天有很多功能/修復程序被合併到分段中,其中一些後來被取消時,最好不時從主分支「刷新」分段分支,然後合併僅相關東西進入它。

+0

感謝您的更正,我只是重新閱讀指南 – eugene