git rebase冲突,而合并工作正常

时间:2011-03-30 12:33:31

标签: git

美好的一天。

我正在使用git简单的svn-like方式,每天晚上做git pull并且非常满意。但令人讨厌的是,在每次拉动中我都会在git日志中获得关于合并的记录。为了摆脱那种合并我试图开始使用

git pull --rebase origin master

而不是简单的拉,但该命令给了我很多冲突错误,而我根本没有改变任何东西,只有我想要的是与远程仓库同步,​​这似乎是一项痛苦的任务。

我只是想知道这些冲突来自何处以及合并是否有效。

以下是错误消息的外观: 警告:压制56个空格错误 警告:61行添加空格错误。 回到修补基地和3路合并...... 自动合并promo.pl CONFLICT(内容):合并promo.pl中的冲突

我还玩了以下没有帮助的法术:

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

似乎git因某种原因不喜欢我的空白并且摧毁它,甚至不要求任何许可,如何禁止这个?

1 个答案:

答案 0 :(得分: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'

至于空白警告,它们只是警告。虽然我建议保持你的空白区域清晰,但是就我所知,它们不会引起合并冲突。

P.S。如果合并在日志中提交烦扰你,请尝试 git log --no-merges