Web Analytics

こつこつエンジニア

現役アプリ開発者によるIT系特化ブログ

【Sourcetree】特定CommitだけMergeする方法

f:id:madai21:20211014134512j:plain

はじめに

リリース用のブランチを作成している時などで他のブランチのコミットのうち、これは今回のリリースに取り入れたいけど、これはまだ確認中(もしくは問題発生していることが発覚)だから取り入れたくないな・・・という場面があるかもしれません。
その時に普通にマージしてしまうとブランチすべてのコミットを取り入れてしまうので、どうすればいいでしょうか・・・。
今回はその方法について書きたいと思います。

方法

ずばりcherry-pickという機能で解決できます。

このようにmasterブランチのとある点からrelease_1.0.0というブランチが派生し、release_1.0.0ブランチでリリース向けのコミットをしている状態でmasterブランチにコミットされているcommit1/commit2/commit3のうち、commit2だけ取り入れたいケースの場合で考えてみます。

f:id:madai21:20210716093720p:plain

f:id:madai21:20210716094129p:plain

現在のブランチがrelease_1.0.0の状態でcommit2を選択し右クリックしてチェリーピックを選択します。 f:id:madai21:20210716094154p:plain

f:id:madai21:20210716094234p:plain

OKボタンを押します。

f:id:madai21:20210716094250p:plain

これだけでcommit2を取り入れられましたね^^
コメントにある
cherry picked from commit
の右横(赤枠)が取り入れたコミットIDとなります。
commit2の変更とIDが一致していることがわかりますね^^

f:id:madai21:20210716094321p:plain

f:id:madai21:20210716094333p:plain

おわりに

いかがでしたでしょうか?
とても簡単にできましたねw
これで特定コミットだけ取り入れて早くリリースして!って急かされても安心ですね^^