从远程仓库拉出时无法解决git冲突

时间:2016-11-13 16:33:57

标签: git bitbucket

当我拉最后一次提交时,我收到以下错误消息:

    C:\laragon\www\wordpress\wp-content\themes\chihab-twig>git pull
    First, rewinding head to replay your work on top of it...
    Applying: disable Timber cache
    Using index info to reconstruct a base tree...
    M       functions.php
    Falling back to patching base and 3-way merge...
    Auto-merging functions.php
    CONFLICT (content): Merge conflict in functions.php
    error: Failed to merge in the changes.
    Patch failed at 0001 disable Timber cache
    The copy of the patch that failed is found in: .git/rebase-apply/patch

    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".

当我在文本编辑器中修复冲突并提交更改时,我收到以下消息:

    [detached HEAD b66d68b] fix conflict
     1 file changed, 4 insertions(+)

但是当我切换到" master"时,我发现没有撤消任何更改。 这有什么不对?

1 个答案:

答案 0 :(得分:1)

您的默认合并策略已设置为rebase而非merge。

rebase的过程与合并不同。 rebase返回到您的更改发生的位置(输出中的重绕HEAD消息),然后按顺序应用每个提交的变更集。如果存在无法自动解决的冲突,它将停止。那就是你要去的地方。

当您完成更改(解决冲突)后,请使用git add my/file然后git rebase --continue完成合并。

它基本上将冲突的解决方案置于冲突发生的提交中。就好像冲突从未发生过 - 你的变化现在基于与你开始的不同的起点。

您可以考虑将合并策略更改为默认值,以避免重新绑定。更改或定期合并是基于许多因素的决定(超出了本问题的范围)。