Git でのマージは、必ずしも期待どおりに動作するとは限りません。これにより、コードの問題につながるさまざまな問題が発生する可能性があります。幸いなことに、マージを逆にするだけで、マージとそれによって導入された望ましくない変更を元に戻すことができます。
この記事を読んで、Git でのマージを元に戻す方法について知っておくべきことをすべて確認してください。
Git Revert を使用してローカルでマージを元に戻す方法
Git はソフトウェア開発に便利なツールであり、開発者が単一のソース コードを異なるブランチで同時に共同作業できるようになります。これらの個々のブランチのマージは、必ずしも計画どおりに機能するとは限りません。そのような場合には、revert コマンドが役に立ちます。
git revert を使用してローカルでマージを元に戻す手順は次のとおりです。
-
マージ コミットを元に戻す必要があるブランチに移動します。
-
コミット履歴を表示するには、少なくとも
-oneline
パラメーターを指定して
git log
コマンドを入力して実行します。
-
git revert
に続いて
-m 1
を入力します。
-
git Push
コマンドを使用して、マージ コミットをローカルで元に戻します。
git revert を使用してローカルでマージを元に戻すと、新しいコミットが作成され、マージとその後の変更が元に戻されますが、マージ履歴は削除されません。すでにマージをリモート リポジトリにプッシュしている場合は、より抜本的な手段を使用する必要があります。
プッシュされたマージを元に戻すには、手順 1 ~ 3 を実行し、手順 4 を次のように置き換えます。
4. git Push –force と入力して、リモート リポジトリでのマージ コミットを元に戻します。
ローカルでマージを元に戻すのとは対照的に、リモート リポジトリにプッシュされたマージを元に戻すと、コミットとその変更が完全に消去される可能性があります。したがって、その前にバックアップ ブランチを作成することが重要です。
Git でマージを中止する方法
git revert オプションとは対照的に、git merge abort オプションは、現在進行中のマージを中止し、マージとその変更を元に戻すために使用されます。マージを中止すると、作業中のディレクトリがマージ前の状態にリセットされ、再度マージする前に競合を修正できるようになります。
これは、Git がマージの結果として問題を報告している場合にのみ機能することに注意してください。マージが成功すると、コマンドは使用できなくなります。
Git でマージを中止する方法は次のとおりです。
-
マージが進行中のリポジトリに移動します。
-
git status
を使用してリポジトリを確認し、進行中のマージ プロセスを見つけます。
-
git merge –abort
コマンドを入力して実行します。
-
Enter キー
を押してマージを中止します。
Git Hard Reset を使用してマージを元に戻す方法
Git ハード リセット オプションは、Git でのマージを元に戻す最も強力な方法です。このコマンドを使用すると、開発者はブランチ ポインターを別のコミットに再配置することで、作業しているディレクトリの変更を元に戻すことができます。このオプションの欠点は、作業ディレクトリとステージング領域内のすべての変更が破棄されることです。
git ハード リセットを使用してマージを元に戻すには、次の手順に従います。
-
マージ コミットを元に戻す必要があるブランチに移動します。
-
コミット履歴を表示するには、可視性を高めるために少なくとも
–oneline
パラメーターを指定して
git log
を使用します。
-
git restart –hard
とスペースを入力します。
-
元に戻したいコミットハッシュを入力します。
-
Enter キー
を押して、マージとその変更を元に戻します。
git ハード リセット オプションは、現在のブランチを特定のコミットにリセットするための非常に強力な武器です。ただし、広範囲に影響を与えるため、データ損失を避けるために注意して使用する必要があります。ただし、ディレクトリ内のコミットとそれに関連する変更を完全に消去したい場合には便利です。
Git ソフト リセットを使用してマージを元に戻す方法
Git のソフト リセット関数は、ハード リセット関数と同じ方法でブランチ ポインタをリセットします。ただし、ディレクトリ内の変更は削除されません。したがって、マージを元に戻したいが、後で変更できるように作業ディレクトリ内の変更を保持したい場合に便利です。
やり方は次のとおりです。
-
マージ コミットを元に戻す必要があるブランチに移動します。
-
コミット履歴を表示するには、少なくとも
-oneline
パラメーターを指定して
git log
を入力します。
-
git replace –soft <commit-hash>
コマンドを入力します。 <commit-hash> を、元に戻したいコミット ハッシュと置き換えます。
-
Enter キー
を押して、ソフト リセットを使用してマージを元に戻します。
Git でマージを元に戻す必要があるのはなぜですか
元に戻すマージ機能は、Git の頼りになる修正ツールの 1 つです。これは、マージ中に発生した間違いや意図しない問題を元に戻すのに役立ちます。異なる開発者が作成した複数のコードを整列させようとすることで生じる多くの問題を解決できます。
統合の問題
ブランチがマージされると、多くの場合、ソース コードに対するリスクとなる予期しない統合の競合が発生する可能性があります。したがって、マージを元に戻すことは、統合の問題の原因となっている変更を削除する安全な方法です。これにより、ソース コードの整合性が維持され、再度マージする前に間違いを修正する時間が与えられます。
バグ
統合の問題に加えて、マージによってバグが発生する可能性もあります。 Git でマージする場合は、基本的に、完全に独立して行われることが多い変更をつなぎ合わせることになります。マージされたすべてのブランチの変更に対する包括的なテストが完了していない場合は、コードにバグが入り込んでいる可能性があります。したがって、マージを元に戻すと、安定した状態に戻ることができ、バグの原因を特定して修正する時間が得られます。
間違い
これは、間違いを犯さない人はいないため、マージを元に戻す機能を使用する最も一般的な原因の 1 つです。 Git では、間違ったヘッドに誤ってマージするなど、小さなエラーでも問題が発生する可能性があります。幸いなことに、Git マージの元に戻す機能を利用すると、間違いをすぐに元に戻すことができます。
規格
意図したとおりに機能するには、コーディングが正確である必要があります。したがって、マージされたブランチによって予想される標準を下回るコードが導入された場合、マージを元に戻すと標準以下のコードが削除されます。これにより、コードの品質を期待されるレベルに維持し、コーディング プロトコルに違反しないようにすることができます。
コラボレーション
Git は、プロジェクトに取り組む開発者チームにとって、究極の共同作業ツールです。これにより、何人でも一貫してソフトウェア開発に取り組むことができるコラボレーションの世界への扉が開かれます。チームメンバーがブランチを接続できない場合、これまでに行った作業を統合することができないため、マージは不可欠な機能です。ただし、作業が個別に実行されたことを考えると、マージは必ずしも期待どおりに進むとは限りません。マージを元に戻すことが理想的な解決策となります。
元に戻すマージは完璧なコードの作成に役立ちます
コーディングは正確かつ複雑であり、ほんのわずかな間違いでも、ブランチがマージされるときに大きな問題に発展し、コードが機能不全に陥る可能性があります。 Git のリバート マージ機能は、エラーやバグなどを含むブランチを結合解除するための完璧なメカニズムです。
Git でのマージを元に戻すことは計画どおりに進みましたか? ソース コードに影響を与えずにマージを元に戻す方法について他にハックはありますか?以下のコメントセクションでお知らせください。