git rebase
的典型行为是相对"清洁"从基地合并到本地。
然而事情却发生了变化。基本上在基础中触摸的每个文件都需要手动合并到本地 - 无论文件是否在本地被触摸/更改
为什么会这样?有合理的解决方法吗?
更新
出于某些原因此场景
git pull
正常 。它需要手动合并 一个文件 - 这是一个有效的手动合并。
所以我猜这个问题在某种意义上已经转化为"与git pull
相比,git rebase
需要什么条件。我会寻找适用的Q& A。
答案 0 :(得分:3)
一个可能的原因是eol(行尾)字符,两个分支之间可能不同。
退出首次巡视当前rebase(自Git 2.12: git rebase --quit
起)
使用选项(合并策略)-X ignore-space-at-eol
再次尝试您的rebase,以查看问题是否仍然存在。
git pull工作得很好
这就是pull(fetch + merge)和rebase(重播提交)之间的区别
x--x--x--x--X (master)
\
--o--o--O (origin/master)
拉取将合并两个HEAD提交X
和O
,这些提交可能只在一个文件中有所不同。
x--x--x--x--X-----M (master after git pull)
\ /
--o--o--O (origin/master)
rebase(或git pull --rebase)会在origin / master之上重放master,而之前的'x
'提交可能会引入很多冲突,即使X
(HEAD)仅与origin / master HEAD O
中的一个文件不同。
x--x--x
\
--o--o--O--x'--X' (master)
(origin/master)