git rebase合并冲突

我分叉github回购,并在我的github回购工作。
我已经提出了要求,并已完成。

之后,上游有更多的承诺,所以现在我想rebase,我想这就是我必须做的。
但是我得到这些合并冲突:

First, rewinding head to replay your work on top of it... Applying: Issue 135 homepage refresh Using index info to reconstruct a base tree... <stdin>:17: trailing whitespace. %h4 warning: 1 line adds whitespace errors. Falling back to patching base and 3-way merge... Auto-merging app/views/layouts/application.html.haml CONFLICT (content): Merge conflict in app/views/layouts/application.html.haml Auto-merging app/views/home/index.html.haml CONFLICT (content): Merge conflict in app/views/home/index.html.haml Auto-merging app/views/home/_group_projects.html.haml CONFLICT (content): Merge conflict in app/views/home/_group_projects.html.haml Failed to merge in the changes. Patch failed at 0001 Issue 135 homepage refresh When you have resolved this problem run "git rebase --continue". If you would prefer to skip this patch, instead run "git rebase --skip". To check out the original branch and stop rebasing run "git rebase --abort". 

我不知道如何解决这些问题,请帮忙。

重新激活可能是一个真正的头痛。 您必须解决合并冲突并继续重新绑定。 例如,您可以使用合并工具(根据您的设置而不同)

 git mergetool 

然后添加并提交您的更改并继续

 git rebase --continue 

祝你好运

当您在重新绑定时发生冲突时,您有三种select:

  • 你可以运行git rebase --abort来完全撤销rebase。 Git会返回到你的分支的状态,因为它是在调用git rebase之前。

  • 你可以运行git rebase --skip来完全跳过提交。 这意味着没有任何由有问题的提交引入的更改将被包括在内。 你会select这个选项是非常罕见的。

  • iltempo说,你可以解决冲突。 当你完成后,你需要调用git rebase --continue 。 我的mergetool是kdiff3,但还有更多的可以用来解决冲突。 您只需要在git的设置中设置合并工具,以便在调用git mergetool时调用它。https: git mergetool

如果以上都不适合你,那么去散步,然后再试一次:)

注意:使用Git 2.14.x / 2.15(2017年第3季度),冲突情况下的git rebase消息将会更清晰。

参见William Duclot( williamdclt ) 提交的5fdacc1 (2017年7月16日) 。
(由Junio C gitster合并- gitster – in commit 076eeec ,2017年8月11日)

rebase :为无经验的用户提供更清晰的解决scheme

之前:

 When you have resolved this problem, run "git rebase --continue". If you prefer to skip this patch, run "git rebase --skip" instead. To check out the original branch and stop rebasing, run "git rebase --abort" 

后:

 Resolve all conflicts manually, mark them as resolved with git add/rm <conflicted_files> then run "git rebase --continue". You can instead skip this commit: run "git rebase --skip". To abort and get back to the state before "git rebase", run "git rebase --abort".') 

可以通过向他们提供帮助的错误消息来改进git UI:缺乏经验和偶然的git用户。
为了这个目的,确保这些消息中使用的术语可以被这个用户部分所理解,并且指导他们解决这个问题是有帮助的。

特别是,在git rebase期间未能应用补丁程序是一个常见的问题,对于没有经验的用户而言可能会非常不稳定。
引导他们走向解决冲突(这是一个三步骤的过程,因此很复杂),并向他们保证,他们可以摆脱他们无法应付的局面。
这个承诺通过详细解释过程和避免混淆的git linguo来回答这两点。