Git
Chapters ▾ 2nd Edition

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

パッチの適用

Gitのコマンドのうちいくつかは、コミットとはそれによっておこる修正のことであるという観点で捉え、また一連のコミットを一続きのパッチの集まりであるとみなす考え方を中心としています。これらのコマンドは、この考え方に従ってブランチを管理するのに役立ちます。

git cherry-pick

git cherry-pick コマンドは、あるコミットで行われた変更を取得して、それを現在のブランチへ新しいコミットとして取り込む場合に使用されます。これは、あるブランチをマージしてすべての変更を取り込むのではなく、そのブランチから一つか二つのコミットだけを個別に取り込みたい場合に役立ちます。

リベースとチェリーピックのワークフロー では、チェリーピックの説明を行い、実例を示しました。

git rebase

git rebase コマンドは、基本的には cherry-pick を自動化したものです。対象となる一連のコミットを決めた上で、それらを一つずつ、元と同じ順序となるように、どこか別の場所へチェリーピックします。

リベース では、リベースについて詳しく取り上げました。ここでは、公開済みのブランチのリベースに関連した、共同作業の際の課題についても取り上げました。

Git オブジェクトの置き換え では、歴史を分割して、二つの別々のリポジトリへ格納する例を通して、このコマンドの実用的な使い方を示しました。またその際に --onto フラグを使用しました。

Rerere では、リベース中に発生するマージコンフリクトについて見てきました。

複数のコミットメッセージの変更 では、 -i オプションを指定して、対話的スクリプティングモードを使用しました。

git revert

git revert コマンドは、本質的には git cherry-pick コマンドの逆です。このコマンドは、コマンドの対象となるコミットで取り込まれた変更に対して、本質的にはそれを元に戻したり取り消したりすることで、そのコミットとは逆の変更を行うコミットを新規に作成します。

コミットの打ち消し では、マージコミットを元に戻すのにこのコマンドを使用しました。