7

私は次の問題に遭遇しました:

git rebase中に、自動的に解決されたコミットの1つにエラーがあります。つまり、自動解決の結果として、ヘッダーファイルに関数宣言が2回導入され、コンパイルが失敗します。

私の質問は、自動的に解決されたコミットに戻り、手動で解決してから、まだリベースプロセス内にいると仮定して、リベースを続行することは可能ですか?

4

2 に答える 2

9

リポジトリが既知の状態になるように、最初に元のリベースを完了する必要があります。その後、インタラクティブなリベースを使用してエラーを導入したコミットを編集するのは非常に簡単です。修正したいコミットの sha1 をチェックアウトしてから実行します

git rebase -i <sha1>^

HEAD から修正したいコミットまでのコミットを含むエディターが開きます。リストからコミットを見つけ(最初のコミットである必要があります)、「選択」という単語を「編集」に置き換え、保存してエディターを終了します。

これでバグを修正できます。

git commit -a --amend
git rebase --continue

それでおしまい!

于 2013-01-12T16:31:31.087 に答える
1

リベース内のリベースは機能しませんがgit commit --amend、最後にコミットされた変更まで可能です。
現在のコミットがリベースされる直前のコミット (つまり、最後にコミットされたコミット) が原因で問題が発生した場合は、リベース プロセスに副作用を与えることなく修正できます。

そのため、この状況に陥ったとき、私は次のことを行いました。

  1. リベースされている現在の手動変更のステージングを解除します。

    $ git reset HEAD <files being rebased>
    
  2. 問題の原因となっている最後のコミットの修正をステージングします。

    $ git add <files with compilation fix>
    
  3. 最後にコミットされた変更にコンパイルの修正を追加します。

    $ git commit --amend
    
  4. リベースされている現在の手動変更に戻ります。

    $ git add <files being rebased>
    

お役に立てれば。

于 2019-06-03T12:18:53.733 に答える