我有一个历史,看起来像这样如何使我的提交历史记录与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