9

私はgit rebase --interactive自分のレポでやろうとしている深刻な問題を抱えています。不可解なエラーが発生fatal: ref HEAD is not a symbolic refし、リベースが機能しなくなります。git rebase --abort良い状態に戻らなければなりません。

私が受け取った出力は次のとおりです。https://gist.github.com/d38f1e2d2ec9bc480b6f

過去に私が言われたことは、これは私が「切り離された HEAD」モードにいるという事実によるものだということですが、そもそも私がそのモードにいたとしたら、どうやってリベースに入ったのでしょうか? 私は間違いなく から始めてmaster、それgit rebase --interactiveから git-rebase-todo テキスト ファイルを実行して、必要なものに変更しています。そして、このエラーが発生します。

私はここにいる職場の全員に尋ね、何人かは freenode の #git で質問しました。私の問題を真に理解している人や、解決策を知っている人は誰もいないようです。そのエラーをグーグルで調べても何も生成されず、StackOverflow で関連する検索を行っても何も証明されませんでした。私はこれを理解できないようです.masterにプッシュするすべてのコミットを押しつぶすことから、私が行ったすべての小さな変更を独自の個別のコミットとしてプッシュすることは本当に不十分です.

4

2 に答える 2

4

「git rebase」中に、リベースする参照がチェックアウトされます。その参照がコミットの場合、分離されたヘッドが得られます。ブランチ参照の場合、そのブランチはチェックアウトされます。コミットの過程で FATAL が発生した場合、作業ディレクトリが変更された状態のままになります。たとえば、ブランチ Foo にいて、Bar からリベースしようとした場合、FATAL の後、いくつかのリベース コミットが適用された Bar または Bar の後のどこかにいることになります。単純に Foo をチェックアウトすることで回復します。

git rebase --abort 

または、リベースが実際にくさびである場合 (以下の参照を参照)、次のように:

git checkout -f Foo

その後、安全にリベースを再試行して、FATAL が発生した理由をデバッグすることができます。 これは、メモリ不足でリベースが失敗し、「git rebase --abort」が機能しない場合です。

于 2012-05-08T17:03:14.510 に答える