0

gitブランチを別のブランチにリベースしようとすると、予期しないエラーが発生します。2つのgitブランチAとB、およびbase_commitが与えられた場合、履歴内のこれら2つのブランチの共通コミット。

たとえば、Aはbase_commitより2コミット進んでおり、Bはbase_commitより3コミット進んでいます(2つのブランチが「近い」と言うだけで、値は重要ではありません)。

AをBにリベースしようとすると、エラーが追加されることがあります。

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を実行すると役立つ場合がありますが、常にそうとは限りません...

私はMacOSXを使用しており、コードは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 に答える