Git 变基导致基本上所有文件发生合并冲突 - 甚至是未触及的文件
Git rebase causing merge conflicts on essentially all files - even untouched ones
git rebase
的典型行为是相对 "clean" 从基础到本地的合并。
然而,偶尔情况会变糟。基本上 每个 在基地中被触及的文件都需要手动合并到本地 - 无论文件是否已经 touched/changed 本地
为什么会这样?有合理的解决方法吗?
更新
出于某种原因在这个场景
git pull
工作很好。它需要手动合并 一个文件 - 这是一个 有效 手动合并。
所以我想这个问题在某种意义上已经演变为“git pull
相对于 git rebase
的要求是什么。我会寻找适用的问答。
一个可能的原因是 eol(行尾)字符,这在两个分支之间可能不同。
退出当前的第一个巡回变基(自 Git 2.12: git rebase --quit
)
使用选项(合并策略)-X ignore-space-at-eol
再次尝试您的 rebase,看看问题是否仍然存在。
git pull works just fine
这就是pull(fetch + merge)和rebase(replay commits)的区别
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)
A 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)
git rebase
的典型行为是相对 "clean" 从基础到本地的合并。
然而,偶尔情况会变糟。基本上 每个 在基地中被触及的文件都需要手动合并到本地 - 无论文件是否已经 touched/changed 本地
为什么会这样?有合理的解决方法吗?
更新
出于某种原因在这个场景
git pull
工作很好。它需要手动合并 一个文件 - 这是一个 有效 手动合并。
所以我想这个问题在某种意义上已经演变为“git pull
相对于 git rebase
的要求是什么。我会寻找适用的问答。
一个可能的原因是 eol(行尾)字符,这在两个分支之间可能不同。
退出当前的第一个巡回变基(自 Git 2.12: git rebase --quit
)
使用选项(合并策略)-X ignore-space-at-eol
再次尝试您的 rebase,看看问题是否仍然存在。
git pull works just fine
这就是pull(fetch + merge)和rebase(replay commits)的区别
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)
A 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)