git cherry-pick コマンド
参考:
git-cherry-pick | Git Documentation [Official]
使い方
参考:
git で他ブランチの特定のコミットを取り込む方法 – Qiita
git cherry-pick で特定のコミットのみを適用する | Gitテックラボ
git cherry-pick で助かりました(他ブランチのコミットを反映させる方法) – Qiita
複数の commit をまとめて cherry-pick する – dackdive’s blog
How to cherry-pick from a remote branch? – Stack Overflow
git cherry-pick within a pull request – GitHub Gist
プルリクエストを cherry-pick として取り込む
A から B までのコミットを取り込む (A を含まない)
$ git cherry-pick A..B
A から B までのコミットを取り込む (A を含む)
$ git cherry-pick A^..B
参考:
Basic workflow for creating a cherry-pick pull request for ansible | GitHub Gist
Cherry-pick a pull request into a branch? – Stack Overflow
How to cherry-pick multiple commits – Stack Overflow
特定のプルリクエストをフェッチする
$ git fetch origin pull/ID/head:BRANCHNAME
参考:
Checking out pull requests locally – User Documentation | GitHub
Can cherrypick all PR(pull request) from github? – Stack Overflow
origin の全プルリクエストをまとめてフェッチする
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = git@github.com:user_name/repo_name.git fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
.git/config
を開いて fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
を追記する。
$ git fetch origin
通常の fetch
コマンドで全プルリクエストがフェッチされる。
プルリクエストを cherry-pick
する。
$ git cherry-pick origin/pr/ID
参考:
Checkout github pull requests locally – GitHub Gist
Can cherrypick all PR(pull request) from github? – Stack Overflow
マージコミットを cherry-pick する
支流を本流に cherry-pick
する
$ git cherry-pick -m 1 <MERGE_COMMIT>
本流を支流に cherry-pick
する
$ git cherry-pick -m 2 <MERGE_COMMIT>
参考:
merge commit を cherry-pick する – Qiita
特定のコミットからパッチを作成して他のブランチに適用する
パッチを作成する
$ git format-patch -k -1 --stdout <commit_SHA> > patch_file
パッチを適用する
$ cat patch_file | git am -3 -k
参考:
Git で任意のリポジトリコミットを別のリポジトリ以下にコミットごと移設する – Qiita
別リポジトリのコミットをパッチとして当てる (git format-patch & git am) | syon/til
別のリポジトリの差分を取り込む | EZ-NET ネットワークステーション (network.station.ez-net.jp)
Is it possible to cherry-pick a commit from another git repository? – Stack Overflow
他のリポジトリから cherry-pick する
参考:
異なる git リポジトリ間でも cherry-pick はできる – Qiita
git で異なるリポジトリ間で cherry-pick をする | atwata developer blog
Git cherry-pick from another repository (Example) | Coderwall