git cherry-pick:他ブランチに一部のコミットを反映したいとき

 

通常プロジェクトを進行するときはmasterブランチをリリースしながら運営することになりますが、中規模/大規模改編が行われると、2つのブランチを同時に管理しなければならないジレンマがあります。

# git branch
 master
 next-release

このように2つのブランチがあるとします。masterは現在運営しているブランチで、next-releaseは次の大規模改編時に反映するコードです。
ところが突然、UI上にミスが見つかりました。このような場合は、masterとnext-releaseの両方に反映しなければなりません。

# git checkout master
# git commit -am "fixed: typo"
# git log --pretty=oneline
b14b975 fixed: typo
9f57292 ....
....

このようにmasterに反映しました。この内容をnext-releaseに反映するには、次のように実行します。

# git checkout next-release
# git cherry-pick b14b975
# git log --pretty=oneline
23fa1e76 fixed: typo
dd0f27c ...
...

参考:git flow、すなわちfeature/BTS-###のようなブランチを取得してmergeする方式で運営する場合、あえてcherry-pickを利用する必要はありません。single master branch上で作業する方式の場合に有用です。

http://git-scm.com/docs/git-cherry-pick

TOAST Meetup 編集部

TOASTの技術ナレッジやお得なイベント情報を発信していきます
pagetop