記事検索

検索ワードを入力してください。
Sky Tech Blog
【Git】cherry-pickの​基本操作と​応用

【Git】cherry-pickの​基本操作と​応用

Gitのcherry-pick操作について、前提知識や由来、具体的な操作方法、Git Bashでの使い方、類似操作との違い、応用方法を紹介しています。

皆様はGitLabのアイコンの動物はキツネではなくタヌキだということをご存じでしょうか?

そんな話はさておき、Gitのcherry-pickについて紹介します。 主にGit BashでのCLI操作での紹介となります。

前提知識

Gitでの​ハッシュ値とは

SHA-1 【Secure Hash Algorithm 1】のハッシュ関数を用いて作成される一意の値のことです。
この値は16進数で40桁の値で表示されますが、ハッシュ値からコミットを特定する際は、小さなプロジェクトでは最小4桁でも該当コミットのハッシュ値を推定可能です。
セキュリティーリスクがより低いSHA-256へ移行しているGitのプロジェクトもありますが、主流はSHA-1となっています。

チェリーピックの​由来

熟したサクランボだけを選んで摘み取ることから来ており、転じて「良いところだけを選ぶ」という 意味で使われます。
Gitでは欲しいコミット差分を現在のブランチに取り込むことができる操作のことを指します。

具体的に​どんな​操作なのか

他のブランチの特定のコミットの差分を現在のブランチの先頭に新しいコミットとして追加します。
そのため、他ブランチの任意コミットのハッシュ値とチェリーピックしたコミットのハッシュ値は異なります。

下の図はfeatureブランチのコミットをmainブランチにチェリーピックした際のイメージです。
featureブランチのコミット(b644e4d8)をチェリーピックし、新しくコミット(c7d8e9f0) が出来たことを表しています。

Git Bashでの​使い方

git cherry-pick <欲しいコミットのハッシュ値>

チェリーピックと​似た​操作の​紹介

① マージ

コミット単位ではなくブランチの差分を取り込む操作です。
同じハッシュ値のコミットがマージされます。

  • マージコミットは別のハッシュ値で生成されます。

② patchファイルを作成して適用

作業ディレクトリの差分を取り込む操作です。
ファイルとして受け渡し可能で、差分のステージングとコミットが必要です。

チェリーピックの​応用

  • 複数コミットをまとめてチェリーピック

半角スペース区切りで指定

git cherry-pick <ハッシュ値1> <ハッシュ値2>
  • 始点終点を指定 意図しない競合発生が起きる可能性があるため、マージコミットを含むコミットのチェリーピックは注意が必要です。
git cherry-pick <始めのハッシュ値>^..<終わりのハッシュ値> 
  • オプション指定

コミットメッセージを任意に編集

git cherry-pick <ハッシュ値> --edit

差分をステージングした状態にする(コミットは作成されません)

git cherry-pick <ハッシュ値> --no-commit

\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム