Xcode 使用git从一个分支重新基址到另一个分支时出现意外错误,在此过程中某些文件似乎被修改

Xcode 使用git从一个分支重新基址到另一个分支时出现意外错误,在此过程中某些文件似乎被修改,xcode,macos,git,rebase,Xcode,Macos,Git,Rebase,尝试在另一个git分支上重新设置git分支的基址时出现意外错误。 给定两个git分支A和B,以及base_commit,历史上这两个分支的公共commit 例如,A比base_commit早2次提交,B比base_commit早3次提交(这些值并不重要,只是说这两个分支“接近”) 当我尝试在B上重新设置A的基础时,有时会附加一个错误: error: Your local changes to the following files would be overwritten by merge: [

尝试在另一个git分支上重新设置git分支的基址时出现意外错误。 给定两个git分支A和B,以及base_commit,历史上这两个分支的公共commit

例如,A比base_commit早2次提交,B比base_commit早3次提交(这些值并不重要,只是说这两个分支“接近”)

当我尝试在B上重新设置A的基础时,有时会附加一个错误:

error: Your local changes to the following files would be overwritten by merge:
[...]
Please, commit your changes or stash them before you can merge.
Aborting
Failed to merge in the changes.
Patch failed at 0004 Passage de ZIM sous forme d'une bibliothèque

When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To check out the original branch and stop rebasing run "git rebase --abort".
但是索引没有变化(git状态没有给出任何信息)

一种解决方案是中止并重试,有时它会起作用。执行git gc可以有所帮助,但并不总是

我在MacOS X上,代码是用XCode编写的,我没有防病毒软件,即使XCode和SourceTree结束了,问题也会出现


任何帮助都将不胜感激。谢谢。

假设分支
A
B
,站在
A
上,文件
f
被修改(未签入
A
),而
B
包含另一个版本。如果我尝试将
B
重设为
A
,则
f
的本地更改将丢失。解决方案:将更改提交到
f
,或者将它们隐藏起来以备将来使用,或者通过
git checkout f
丢弃它们

简而言之,这就是信息所说的

如果您“再次尝试直到成功”,您可能会丢失上述更改


故事的寓意:如果您想使用
git
执行任何更复杂的操作(如从上游提取、重定基址、更改上次提交等),请确保一切都井然有序。也就是说,
git status
说它是干净的,希望没有未跟踪的文件。

谢谢你的回答。我没有要提交的内容,也没有隐藏列表中的任何内容,在重新定基之前也没有未跟踪的文件。我没有丢失任何东西,因为我所有的新代码都已被索引和提交。似乎在rebase命令和git有效地执行rebase命令之间修改了文件。我将尝试git config--global core.trustctime false来修复此问题。