我有兩個分支。分期和Beta。分期中有代碼(包括文件),我根本不需要。我怎樣才能使Beta完全覆蓋Staging,以便這些文件或代碼都不會從Staging合併到Beta中。如何覆蓋,而不是合併,一個遠程分支到另一個分支?
我看到一些人建議這樣做:
git checkout staging
git merge -s ours beta
但我不相信預先存在,文件將是一個「代碼衝突」,因此不會被刪除。我錯了嗎?如果我是對的,我將如何實現這一目標?
我有兩個分支。分期和Beta。分期中有代碼(包括文件),我根本不需要。我怎樣才能使Beta完全覆蓋Staging,以便這些文件或代碼都不會從Staging合併到Beta中。如何覆蓋,而不是合併,一個遠程分支到另一個分支?
我看到一些人建議這樣做:
git checkout staging
git merge -s ours beta
但我不相信預先存在,文件將是一個「代碼衝突」,因此不會被刪除。我錯了嗎?如果我是對的,我將如何實現這一目標?
我建議如果你改變了主意,你只需將其重命名。
git branch -m staging staging_oops
git checkout beta
git branch staging
如果你實在無法忍受周圍具有額外的分支:
git branch -D staging_oops
如果你不在乎關於staging
舊的歷史,你可以重新創建:
git checkout beta
git branch -f staging
如果你在意關於staging
舊的歷史,那麼事情s得到更多的樂趣:
git checkout staging # First, merge beta into staging so we have
git merge -s theirs beta # a merge commit to work with.
git checkout beta # Then, flip back to beta's version of the files
git reset --soft staging # Then we go back to the merge commit SHA, but keep
# the actual files and index as they were in beta
git commit --amend # Finally, update the merge commit to match the
# files and index as they were in beta.
如果分期的歷史不會是一個問題,你可以簡單地做到這一點。
git checkout staging
git reset --hard beta
只要記住分期的歷史將不復存在上面的命令後 分期將有你的測試版分公司的工作。
從'beta'提前'暫停'嗎?你們兩個分支之間的關係究竟是什麼? – Rerito 2013-04-23 14:23:49
他們都有一些未來的數據。但我不想在舞臺上做任何事情。 – Trip 2013-04-23 14:50:18