Git はマージされたコミットの複数の状態を元に戻します

#Git はマージされたコミットの複数の状態を元に戻します

ブランチのマージは Git の一般的な操作ですが、間違ったコミットが誤ってメイン ブランチにマージされる場合があります。この時点で、マージされたコミットを元に戻して、正しい状態を復元する必要があります。この記事では、コミット レコードが最新のものであっても途中のものであっても、Git でマージされたコミットを元に戻す方法を紹介します。

最新のマージされたコミットを元に戻す

最新のマージ コミットを元に戻す場合は、git revertコマンドを使用して、誤った変更を元に戻す新しいコミットを作成できます。

  1. まず、git logコマンドを使用してコミット履歴を表示し、最新のマージ コミットを見つけます。

$ git log
commit c3d2e9a4e2a1e285ff4d8f06e01d4e3f19b532ea (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Fri Jun 30 15:26:43 2023 +0800

    Incorrect merge commit

commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b
Author: Lilei <[email protected]>
Date:   Thu Jun 29 18:20:56 2023 +0800

    Correct commit

...

上の例では、最新のバグのあるマージ コミット ( Incorrect merge commit) を確認できます。

  1. このコマンドを使用してgit revertマージ コミットを取り消し、新しいコミットを作成して正しい状態に戻します。

$ git revert c3d2e9a4e2a1e285ff4d8f06e01d4e3f19b532ea

Git は自動的に新しいコミットを作成し、間違ったマージ コミットを元に戻します。

  1. git logまたはコマンドを使用してgit show新しいコミット履歴を検証し、誤った変更が元に戻されていることを確認します。

$ git log
commit b254d0f063b4ab4e7b78fb42015e0c55e0e98712 (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Fri Jun 30 15:46:28 2023 +0800

    Revert "Incorrect merge commit"

    This reverts commit c3d2e9a4e2a1e285ff4d8f06e01d4e3f19b532ea.

commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b
Author: Lilei <[email protected]>
Date:   Thu Jun 29 18:20:56 2023 +0800

    Correct commit

...

Revert "Incorrect merge commit"ここでは、最新の誤ったマージ コミットを元に戻す新しいコミット ( ) が作成されたことがわかります。

最新のマージされた複数のコミットを元に戻す

最新のマージの複数のコミットを元に戻したい場合は、git resetコマンドを使用してコミットまでロールバックできます。手順は次のとおりです。

  1. まず、git logコマンドを使用してコミット履歴を表示し、ロールバックするハッシュ値を見つけます。

$ git log
commit c5b890eee2edf9a353ec6bba0543e41d2529a8f8 (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Mon Jul 3 15:12:10 2023 +0800

    Incorrect merge commit

commit 82bcf43083a4dc8c87091ebde4dd5374f0c6e274
Author: Hanmeimei <[email protected]>
Date:   Mon Jul 3 15:11:54 2023 +0800

    Incorrect merge commit2
    
commit 60a52b00d0ee2703156231e209e8aad115919aee
Author: Hanmeimei <[email protected]>
Date:   Mon Jun 26 06:32:35 2023 +0000

    Correct commit

...

ここでは () へのロールバックが必要ですCorrect commit

  1. このコマンドを使用してgit reset マージ コミットを取り消し、新しいコミットを作成して正しい状態に戻します。

$ git reset --soft 60a52b00d0ee2703156231e209e8aad115919aee // 暂存区
$ git reset --hard 60a52b00d0ee2703156231e209e8aad115919aee // HEAD 指向此次提交记录
$ git push origin HEAD --force // 强制推送远端

注: この送信後の変更は予約されず、git statusワークスペースを表示した記録はありません。

  1. git log最後に、またはコマンドを使用してコミット履歴を検証しgit show、誤った変更が元に戻されていることを確認します。

$ git log
commit 60a52b00d0ee2703156231e209e8aad115919aee (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Mon Jun 26 06:32:35 2023 +0000

    Correct commit

...

誤って削除した場合は、次の方法を使用して復元できます。

$ git reset --hard 82bcf43083a4dc8c87091ebde4dd5374f0c6e274 // 误删的哈希值

 HEAD is now at 82bcf4308 feat: Incorrect merge commit2
 
$ git push origin HEAD --force // 强制推送远端

中間マージコミットを元に戻す

マージ送信を途中で取り消したい場合は、git revertコマンドを使用して、元に戻すコミット ハッシュ値を指定できます。

  1. まず、git logコマンドを使用してコミット履歴を表示し、元に戻す中間マージ コミットを見つけます。

$ git log
commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b (HEAD -> master)
Author: Lilei <[email protected]>
Date:   Wed Jun 21 12:00:00 2023 +0000

    Correct commit
    
commit a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0
Author: Hanmeimei <[email protected]>
Date:   Fri Jun 18 12:00:00 2023 +0000

    Incorrect merge commit
    
...

中間のエラーのあるマージ commit() はここで確認できますIncorrect merge commit

  1. 次に、git revertコマンドを使用してマージ コミットを元に戻し、新しいコミットを作成して正しい状態に戻します。

$ git revert a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0

Git は自動的に新しいコミットを作成し、間違ったマージ コミットを元に戻します。

  1. 最後にgit log、 またはgit showコマンドを使用して新しいコミット履歴を検証し、間違った変更が元に戻されていることを確認します。

$ git log
commit b254d0f063b4ab4e7b78fb42015e0c55e0e98712 (HEAD -> master)
Author: Hanmeimei <[email protected]>
Date:   Mon Jun 28 12:10:00 2023 +0000

    Revert "Incorrect merge commit"

    This reverts commit a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0.

commit 3e5fb8a7b631eb6492ef32e28a813084d4d3de2b
Author: Lilei <[email protected]>
Date:   Wed Jun 21 12:00:00 2023 +0000

    Correct commit
    
commit a1b2c3d4e5f6a7b8c9d0e1f2g3h4i5j6k7l8m9n0
Author: Hanmeimei <[email protected]>
Date:   Fri Jun 18 12:00:00 2023 +0000

    Incorrect merge commit

...

以前の送信が に残りgit log、この取り消しが新しい送信 ( Revert "Incorrect merge commit") として使用されることがわかります。

知らせ

元に戻す操作を実行する前に必ず結果を理解し、変更を加える前にバックアップを作成するか重要なデータを保存してください。

- 終わり -

Qi Wu 劇団について

Qi Wu Troupe は 360 グループ最大のフロントエンド チームであり、グループを代表して W3C および ECMA メンバー (TC39) の活動に参加しています。Qi Wu Troupe は人材育成を重視しており、エンジニア、講師、翻訳者、ビジネス インターフェース担当者、チーム リーダーなど従業員が選択できるさまざまな育成方向性を備えており、対応する技術、専門、一般、リーダーシップ トレーニング コースを提供しています。Qi Dance Troupe は、あらゆる種類の優れた才能に注目し、オープンで才能を求める姿勢で Qi Dance Troupe に参加することを歓迎します。

674c30eac365c8a69f26f440bb362217.png

おすすめ

転載: blog.csdn.net/qiwoo_weekly/article/details/131671808