git replace は、以前のコミットを取り消したり、ウェアハウスの状態を変更したりするために使用されます。git restart コマンドを使用する場合、さまざまなモードを指定してさまざまな効果を実現できます。これらのモードには、--soft、--mixed、--hard、および --keep が含まれます。
1 git リセット --soft xx :
このモードでは、HEAD がターゲット コミットを指しますが、ターゲット コミット後に行われた変更は保持されます。この時点では、ターゲットの送信後の変更はステージングされていない変更となり、 git status コマンドを使用して変更を表示し、選択的にコミットできます。
基本的にそれを行うのはあなた次第です。
1.1 コードを変更する
1.2 git add ,
1.3 gitコミット ,
1.4 git プッシュ
次に git replace --soft xx を実行すると、1.2 git add ステップに戻るのと同じになります。それ以外は何も変わっていないのですが、
2 git replace --mixed (デフォルト モード) xx:
このモードは、パラメータを指定せずに git restart コマンドを実行する場合にデフォルトで使用されます。HEAD がターゲット コミットをポイントし、ターゲット コミット後に行われた変更をクリアします。このとき、対象の送信後の変更はコミットされていない変更となり、 git status コマンドを使用して変更を表示し、選択して送信できます。
基本的にそれを行うのはあなた次第です。
1.1 コードを変更する
1.2 git add ,
1.3 gitコミット ,
1.4 git プッシュ
次に、 git replace --mixed xx を実行します。これは、1.1 のコードを変更するステップに戻るのと同じです。それ以外は何も変わっていないのですが、
変更したコードはまだ存在しますが、次の手順はロールバックされています。
3 git リセット --ハード xx:
このモードは、HEAD がターゲット コミットをポイントし、ターゲット コミット後の変更を完全にクリアします。つまり、コミットされていない変更をすべて元に戻します。このとき、対象の投稿以降に行われた変更は完全に破棄されますので、注意して使用してください。
基本的にそれを行うのはあなた次第です。
1.1 コードを変更する
1.2 git add ,
1.3 gitコミット ,
1.4 git プッシュ
その後 git replace --hard xx を実行すると、コードを修正する前に巻き戻す、つまり修正したコードが消えてしまうことと同じですが、単純かつ粗雑ですので、使用する際は修正した内容をバックアップするように注意してください。
4 gitリセット --keep xx:
このモードは、HEAD がターゲット コミットをポイントし、ターゲット コミット後の変更を保持しようとする git restart --mixed に似ています。ただし、 git replace --mixed とは異なり、ターゲットのコミット後の変更が現在のステータスと競合する場合、このモードはコード損失の可能性を回避するために操作を終了します。
これは自分で使用するための非常に少量です。言うことはあまりありません。混合のようなもので、競合が発生すると操作が終了します。