在開源項目上工作時,我遇到了以下git問題。我做了一些改變,併發送了拉請求。公關首先被接受。但是,我的更改發現有一些微妙的錯誤,維護者再次提交了我的提交,並要求我在解決問題後發送新的請求。但是,之間發生了很多其他提交,所以我需要更新我的請求。不幸的是,我不能讓git在最近的狀態master
之上重新綁定或挑選舊的PR。git rebase after git恢復
讓我用一個例子來說明事情。說,我原來的拉動請求已提交A
和B
並被接受。然後,幾次提交後我的公關被還原(R
),然後再發生幾次提交。歷史是這樣的:
...--A---B--...--R--...--o master
現在,我想將它轉化爲以下形式,以精益求精最近的master
狀態的頂我拉請求:
...--A---B--...--R--...--o master
\
A---B newPR
但是,我無法通過rebase
和cherry-pick
實現此目的。問題似乎是,git認爲A
和B
已經是master
的一部分,因爲它們已經在歷史中了。因此,它不會將這些更改應用於master
之上。
我該如何強制git來做到這一點?
你究竟是什麼意思*我未能實現這個*?你從Git得到一個特定的消息嗎?另外,添加你使用的確切的'rebase'和'cherry-pick'命令。 – Jubobs 2014-08-31 17:50:01
@Jubobs *失敗*表示「A」和「B」的更改不存在。就git而言,這不是一個錯誤。 rebase命令是'git rebase - master masterPR B',其中'beforePR'是'A'之前的最後一次提交。這直接來自'git rebase'手冊頁。櫻桃採摘是'git cherry-pick A..B'。 – Lemming 2014-08-31 18:09:51
有人在這裏評論,只是*恢復恢復*。這實際上工作得很好。不幸的是,我不記得用戶名,但是如果那個人會將其作爲答案發布,並且沒有什麼奇妙的更好的話,那麼我會很樂意接受它。 – Lemming 2014-08-31 18:23:13