Git の別のブランチからコミットをコピーする
Git で作業しているときに、特定の個別のコミットを 1つのブランチから現在の HEAD
ブランチに統合する必要があります。これは、クライアントが製品の変更または報告されたバグを望んでいることが原因である可能性があります。
誤ってコミットしたか、以前のブランチでコミットしたくないので、現在の HEAD
ブランチでコミットしたいと考えています。
上記の問題に対する答えは CHERRY PICK です。したがって、次のセクションでは、cherry-pick
コマンドについて詳しく説明します。
Git の別のブランチからコミットをコピーする
1つのブランチから特定のコミットを取得し、それを現在の HEAD
ブランチにコピーすることを Cherry Picking と呼びます。
Git には、この目的のための特定のコマンド、つまり Git の cherry-pick
コマンドがあります。チェリーピッキングのもう 1つの用途は、プルリクエストをマージまたは開発する前に特定の変更を適用することです。
これは、変更を元に戻すのに非常に役立ちます。
この記事では、あるブランチから別のブランチへの特定のコミットのチェリーピッキングについて説明します。
git log
コマンドを使用してコミットを表示する
まず、git log
を使用して、選択するコミットを調査します。以下は、git log
コマンドの分岐結果です。
d23216 - 953222 - 953219 - aa3s36 - 532d37 [master]
\
76cada - 66ecb3 - b886a0 [feature]
ここ feature
ブランチには、master
ブランチにのみ必要な別のブランチからのコミット 66ecb3
があります。
その特定のコミットを選択して、現在のブランチである master
ブランチに転送しましょう。その後、そのコミットの変更をプロジェクトに使用できます。
git cherry-pick
コマンドを実行してコミットをコピーする
ここで、git cherry-pick
が私たちの助けになります。66ecb3
はさくらんぼで、過去にたくさんのプッシュから選んでいきたいと思います。
次のコマンドを実行して、別のブランチから選択してみましょう。
git checkout master
git cherry-pick 66ecb3
上記のコマンドが正常に実行されると、66ecb3
がマスターブランチの新しいコミットとして機能します。
そのため、Git は必要なコミットのコピーを作成し、同じコミットメッセージと変更を master
ブランチに追加しました。最終的に、新しい ID を持つ新しいコミットが作成されます。
git reset
コマンドを使用して他のブランチをクリーンアップする
feature
ブランチに切り替えると、古い場所で同じコミットが表示されます。これは、Git が移動するのではなく、他のブランチにコピーしたためです。
元のものはそのまま残しています。
ここで、クリーニングと元に戻すために、必要なブランチにチェックアウトした後、コマンド git reset
を使用します。
$ git checkout Test
Switched to branch 'Test'
$ git reset --hard HEAD~1
HEAD is now at 66ecb3 Change the title and delete the error page
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn