章 ▾ 第2版

A3.8 付録C: Gitコマンド - パッチ適用

パッチ適用

Gitの一部のコマンドは、コミットを一連のパッチであるかのように、それが導入する変更の観点から考えるという概念を中心にしています。これらのコマンドは、この方法でブランチを管理するのに役立ちます。

git cherry-pick

git cherry-pick コマンドは、単一のGitコミットで導入された変更を取り込み、現在作業中のブランチに新しいコミットとして再導入しようとするために使用されます。これは、ブランチ全体をマージするのではなく、個別に1つまたは2つのコミットだけをブランチから取り込む場合に役立ちます。

チェリーピックについては、リベースとチェリーピックのワークフローで説明および実演されています。

git rebase

git rebase コマンドは、基本的に自動化された cherry-pick です。一連のコミットを決定し、それらを同じ順序で他の場所に一つずつチェリーピックします。

リベースについては、リベースで詳しく説明されており、すでに公開されているブランチのリベースに伴う共同作業の問題も含まれています。

置き換えの例では、履歴を2つの別々のリポジトリに分割する際に、--onto フラグも使用して実践しています。

Rerereでは、リベース中にマージ競合に遭遇する状況について説明しています。

複数のコミットメッセージの変更では、-i オプションを使って対話型スクリプトモードでも使用しています。

git revert

git revert コマンドは、実質的に逆の git cherry-pick です。ターゲットとするコミットで導入された変更とまったく逆の変更を適用する新しいコミットを作成し、実質的にその変更を取り消したり元に戻したりします。

コミットの取り消しで、マージコミットを元に戻すためにこれを使用しています。

scroll-to-top