私は次の問題に遭遇しました:
git rebase中に、自動的に解決されたコミットの1つにエラーがあります。つまり、自動解決の結果として、ヘッダーファイルに関数宣言が2回導入され、コンパイルが失敗します。
私の質問は、自動的に解決されたコミットに戻り、手動で解決してから、まだリベースプロセス内にいると仮定して、リベースを続行することは可能ですか?
リポジトリが既知の状態になるように、最初に元のリベースを完了する必要があります。その後、インタラクティブなリベースを使用してエラーを導入したコミットを編集するのは非常に簡単です。修正したいコミットの sha1 をチェックアウトしてから実行します
git rebase -i <sha1>^
HEAD から修正したいコミットまでのコミットを含むエディターが開きます。リストからコミットを見つけ(最初のコミットである必要があります)、「選択」という単語を「編集」に置き換え、保存してエディターを終了します。
これでバグを修正できます。
git commit -a --amend
git rebase --continue
それでおしまい!
リベース内のリベースは機能しませんがgit commit --amend
、最後にコミットされた変更まで可能です。
現在のコミットがリベースされる直前のコミット (つまり、最後にコミットされたコミット) が原因で問題が発生した場合は、リベース プロセスに副作用を与えることなく修正できます。
そのため、この状況に陥ったとき、私は次のことを行いました。
リベースされている現在の手動変更のステージングを解除します。
$ git reset HEAD <files being rebased>
問題の原因となっている最後のコミットの修正をステージングします。
$ git add <files with compilation fix>
最後にコミットされた変更にコンパイルの修正を追加します。
$ git commit --amend
リベースされている現在の手動変更に戻ります。
$ git add <files being rebased>
お役に立てれば。