我有一個歷史,看起來像這樣如何使我的提交歷史記錄與git rebase一起工作?
H o updated ctools, ds
G M─┐ merged module file
F │ o find page
E o │ work on download restriction
D o─┘ Report downloading/emailing WIP
C o migration: find and replace URLs throughout notes
B o various local things
A o initial commit
而且背後,A脫落遠程主的。現在遠程已經開始了,我想使用git rebase來更新我的歷史記錄,使其位於最新的遠程更改之上。
所有這些提交的是關於代碼,不遠程主,而是因爲它似乎不知道如何處理d混帳衍合的讓我失望:摹:這是在合併邊支G。 Git rebase嘗試按順序應用它們,但不合並,即A B C D E F H...
但F將不適用於E。我計劃需要多次重組以保持我的代碼位於最新源代碼的開發之上,所以我想要一個持久的解決方案。
我該如何告訴git衝突的答案是在G?或者我該怎麼做別的東西,讓git rebase能夠回覆提交?我很樂意將壁球D:G分成D'如果這樣做更容易。
謝謝你的幫助。正如我所說,我需要定期重複這一點,所以我非常喜歡1-5的聲音作爲一次性修復。你能否給出更多關於如何在(1)中進行部分重新定位的提示?另外,如果我可以做到這一點,那麼對AD進行重新分配並不容易,然後得到一個補丁D:G,將其應用爲E',然後再對其餘部分使用rebase(H繼續前進,在樹的其餘部分分支然後合併的其他例子)。 – artfulrobot
@artfulrobot你可以擠壓一些提交,但這必須由你自己決定,因爲原始提交的意圖並不總是被保留下來。如果H繼續下去,強烈鼓勵合併。 – prusswan
上下文位置:原點是Drupal。我的大部分代碼都在一個新模塊中;特定於我的使用;那永遠不會是原點的一部分。有幾次我修補了核心drupal。當Drupal提出安全更新時,我希望我的代碼應用於此。我希望檢查我的任何核心修補程序,因爲它們可能不再是必需的/正確的。我與我的各種drupal項目共享這些補丁,這就是爲什麼rebase很好。合併會使這個過程更加混亂,我會失去我的補丁。 – artfulrobot