0

尝试将 git 分支重新建立在另一个分支上时出现意外错误。给定两个 git 分支 A 和 B,以及 base_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 status 什么也没给出)

一个解决方案是中止并重试,有时它会起作用。执行 git gc 会有所帮助,但并非总是如此……

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

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

4

1 回答 1

0

假设分支AB,站在A,文件f被修改(而不是签入A),同时B包含另一个版本。如果我尝试重新定位BA,则本地更改f将丢失。解决方案:将更改提交到f,或将它们藏起来以备后用,或者可能通过 丢弃它们git checkout f

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

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

故事的寓意:如果你想做任何更复杂的操作git(比如从上游拉,变基,改变最后一次提交,......)确保一切都是整洁的。即,git status说它很干净,希望没有未跟踪的文件。

于 2013-02-27T18:39:05.273 回答