😸

【git】別リポジトリのコミットをcherry-pickしたい

2024/03/15に公開

業務で別リポジトリのコミットをチェリーピックする必要が出たので、自分用にまとめる。

前提

  • 2つのリポジトリ(A,B)が存在
  • A リポジトリのあるコミットを B リポジトリにチェリーピックしたい。

A リポジトリ(チェリーピック元)での作業

  • B に取り込みたいコミットをリモートブランチにプッシュ

リモートブランチの URL を取得

git remote -v

B リポジトリ(チェリーピック実施)の作業

  • git ターミナルを開いて、以下のコマンドを実行

A リポジトリ のチェリーピック対象のコミットが存在するリモートブランチを登録

git remote add {{任意の名前}} {{リポジトリAのリモートブランチURL}}

リモートブランチの変更をフェッチ

git fetch {{さっきつけた名前}} {{リポジトリAのリモートブランチ名}}

これで リポジトリ A の remote ブランチを追跡できる。

git log でコミット ID を調べる
※見やすくするために format は適宜調整

 git log --pretty=format:"%h : %an  %s" -10

format オプション 補足

- `%an` – コミット作者名 (_Author Name_)
- `%h` – 短いコミット ID
- `%n` – 改行。`\n` 的な。ちなみに `\n` はそのまま出力される
- `%s` – コミットの題 (_Subject_)

コミット ID を指定してチェリーピックする

git cherry-pick {コミットID}
GitHubで編集を提案

Discussion