gpt4 book ai didi

Git rebase 导致基本上所有文件发生 merge 冲突 - 甚至是未触及的文件

转载 作者:太空狗 更新时间:2023-10-29 14:43:12 26 4
gpt4 key购买 nike

git rebase 的典型行为是从基础到本地的相对“干净”的 merge 。

然而,偶尔情况会变糟。基本上每个在基础中被触及的文件都需要手动 merge 到本地——不管文件是否在本地被触及/改变

为什么会这样?有合理的解决方法吗?

更新

出于某种原因在这种场景中

git pull

工作很好。它需要手动 merge 一个文件 - 这是有效手动 merge 。

所以我想这个问题在某种意义上已经演变为“git pull 相对于 git rebase 的条件是什么。我会寻找适用的问答。

最佳答案

一个可能的原因是 eol(行尾)字符,这在两个分支之间可能不同。

退出当前的第一个巡回 rebase (自Git 2.12: git rebase --quit)

使用选项( merge 策略)-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)

一次 pull 将 merge 两个 HEAD 提交 XO,它们可能仅在一个文件中不同。

 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)

关于Git rebase 导致基本上所有文件发生 merge 冲突 - 甚至是未触及的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45341547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com