Git は、業界で最も一般的に使用されているバージョン管理ツールの 1 つです。git merge は、git で最も一般的な操作の 1 つで、2 つの異なるブランチをマージできます。ただし、マージすべきではないブランチやコードをマージする場合があります。その場合は、マージをキャンセルする必要があります。では、git merge 操作をキャンセルするにはどうすればよいでしょうか?この記事ではいくつかの解決策を紹介します。
マージステータスを確認する方法
まず、マージケースを理解する必要があります。 git log コマンドを使用すると、関連情報を表示できます。コマンドを実行します:
git log --graph --oneline --decorate
このコマンドは、すべてのブランチのマージおよびコミット情報を含む、コミット履歴の美しい視覚化を表示します。
Git reflog コマンドは、コミット、マージ、リベースなどを含む、Git 参照の変更履歴を一覧表示できます。次のコマンドを実行します:
git reflog
このコマンドは、git merge 操作を含むすべての git 操作の履歴を表示します。出力は次のとおりです。
cb61cbb HEAD@{0}: merge dev_branch: Fast-forward a44ab51 HEAD@{1}: checkout: moving from dev_branch to master cb61cbb HEAD@{2}: merge dev_branch: Merge made by the 'recursive' strategy. e6c8ed6 HEAD@{3}: checkout: moving from master to dev_branch
Unmerge
if元のコミット履歴に影響を与えずにマージ操作を完全にキャンセルするには、 git restart コマンドを使用できます。コマンドを実行します:
git reset --hard HEAD^
上記のコマンドは、HEAD ポインタを 1 コミット分戻し、マージ操作によって生じたすべてのコード変更を削除します。これは危険な行為であるため、注意して使用する必要があることに注意してください。
元のコミット履歴を保持し、マージ操作の影響を元に戻したい場合は、 git revert コマンドを使用できます。コマンドを実行します:
git revert -m 1 <merge commit sha>
ここでの -m 1 パラメータは、1 つの親コミットのみの変更を元に戻すことを意味します。マージ コミットが複数の親コミットをマージする場合は、-m 2、-m 3 を使用する必要があります。 、などのパラメータ。どのパラメータを使用するかは状況によって異なります。
マージ操作がリモート ウェアハウスにプッシュされている場合は、git restart コマンドを使用してローカル ウェアハウスを復元する必要があります。ウェアハウスをマージ操作前の状態に戻してから、 git Push -f コマンドを使用して、リモート ウェアハウスを強制的に同じ状態に戻します。この方法では、リモート リポジトリ内のすべての変更が削除され、他の人のコードに問題が発生する可能性があるため、使用には細心の注意が必要であることに注意してください。
概要
この記事では、git restart コマンド、git revert コマンド、git restart コマンド、git Push コマンドなどを使用して、git merge 操作をキャンセルする方法を紹介します。コードへの不要な影響を避けるために、これらのコマンドを使用するときは注意してください。同時に、git merge 操作に関する関連情報を表示する方法も学びました。これは、git merge 関連の問題を解決するのに非常に役立ちます。
以上がgit merge オペレーションをキャンセルする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。