😸
【git】別リポジトリのコミットをcherry-pickしたい
業務で別リポジトリのコミットをチェリーピックする必要が出たので、自分用にまとめる。
前提
- 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}
Discussion