1

これは私にとって一般的な問題です。私は5つほどのコミットを行い、以前に使用されたアルゴリズムから無関係になったデバッグコードまたはジャンクコードが残っていることを発見しました。それらをHEADに修正することは必ずしも意味がなく、1行の遅い変更に対して新しいコミットを行うことは無秩序に感じます。

私が知っている解決策には、上記が含まれ、前のコミットをチェックして、分岐、編集、および再度マージします。これは問題なく機能しますが、より慣用的な解決策またはエレガントな解決策のどちらかが存在するのではないかと思います。

4

2 に答える 2

2

インタラクティブなリベースを使用して、特定のコミットに戻って編集することができます。ただし、書き換え履歴に問題がない場合(基本的に、コミットを他の人や一般の人と共有していない場合)です。

これを行うには、最初に編集するコミットのハッシュを見つけます。次に、Gitにコミットの前にインタラクティブなリベースを実行するように指示します。

git rebase -i <SHA>~1

これ~1は重要です-指定したSHAの前にコミットを参照するようにGitに指示します。

これにより、編集するコミットから始まる各コミットの行を含むエディターが表示されます。pickそのコミットのをに変更しedit、保存してエディターを終了します。

Gitはそのコミットを適用してから、一時停止します。次に、ファイルを編集して、デバッグコードとファイルを削除しgit addgit commit --amendコミットを編集できます。

その後、を使用git rebase --continueして他のコミットを順番に適用し、最初の場所に戻ります(ただし、デバッグコードがない新しいコミットのセットを使用します)。

于 2012-07-05T01:45:23.680 に答える
1

まだプッシュまたはプルされていない場合は、リベースを使用できます。

リベースでつぶす

于 2012-07-05T01:37:30.453 に答える