【问题标题】:git rebase conflicts while merging works fine合并时git rebase冲突工作正常
【发布时间】:2011-03-30 12:33:30
【问题描述】:

美好的一天。

我使用 git simple svn-like 方式工作,每天晚上都做 git pull 并且对它非常满意。但是令人讨厌的是,每次拉动时,我都会在 git log 中记录有关合并的信息。为了摆脱这种合并,我尝试开始使用

git pull --rebase origin master

而不是简单的拉动,但是该命令给了我很多冲突错误,而我什么也没做,我唯一想要的是与远程 repo 同步,这似乎是一项艰巨的任务。

我只是想知道这些冲突是从哪里来的,而合并才有效。

错误消息如下所示: 警告:压制 56 个空白错误 警告:61 行添加空白错误。 回退到修补基础和 3 路合并... 自动合并promo.pl CONFLICT(内容):promo.pl 中的合并冲突

我还使用了以下没有帮助的咒语:

git config core.whitespace nowarn
git config core.autocrlf false

似乎 git 出于某种原因不喜欢我的空格并破坏它,甚至不征求任何许可,如何禁止?

【问题讨论】:

    标签: git


    【解决方案1】:

    问题可能是您的提交没有完全适用于远程仓库的当前状态。这揭示了 git pull merge 和 git pull rebase 的本质区别:

    merge 从 repo 中提取最新的提交并将它们应用到你的提交之上。 rebase 拉取 repo 的最新状态并将您的提交应用到它之上。

    最可能的问题是,您的提交干净地应用于您开始的 HEAD,但没有干净地应用于当前的远程 HEAD。

    欲了解更多信息,请尝试Why does git pull --rebase fail when replaying existing commits?git rebase, keeping track of 'local' and 'remote'

    至于空白警告,它们就是警告。虽然我会建议保持你的空白干净以清楚地显示差异,但据我所知,它们不会导致合并冲突。

    附:如果日志中的合并提交让您烦恼,请尝试 git log --no-merges

    【讨论】:

    • 感谢您的回答,问题是我在这个存储库中没有任何最近的提交,也许这是以前的合并和 git 以某种方式考虑它们,这一切 git 的东西都非常奇怪。
    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多