masterブランチに別の作業ブランチの変更が取り込まれていて、それを現在の作業ブランチに取り込みたい時。

以下コマンド実行。

$ git checkout master

$ git pull origin master

$ git checkout [作業ブランチ]

$ git merge master

$ git push origin [作業ブランチ]

 

参考
Git】作業ブランチに最新のmasterを反映させる方法

 

合わせてこれも。mergeのタイミングで画面が切り替わってこんなメッセージが表示される場合がある。

Please enter a commit message to explain why this merge is necessary.

 

これはコミットメッセージ残せよ、と言ってるのはわかるけど入力しようにも画面が反応しないし、戸惑う人も多いと思う。簡潔に言うと、コミットメッセージ残さない場合は、「esc押下 + :q」で抜ける。コミットメッセージ残すならi押下でメッセージを入力。(vimと同じ)。

環境によってはターミナルがGNU nanoエディタのケースもある。その場合は「Ctrl + X」で抜ける。

参考
【Git】マージする時に「Please enter a commit message to explain why this merge is necessary」と表示された時の対処法

 

次に、他の作業ブランチの変更を取り込むケース。想定する場面としては、他の作業ブランチの変更がmasterにマージされていれば自分の作業ブランチでmasterをマージすればよいのだが、何らかの事情でそれができないタイミングでは他ブランチの変更を直接取り込むことになる。

現在のブランチtest1に、test2ブランチの差分を取り込む例。(ブランチtest1にて実施)

 

test2ブランチをfetchする

$ git fetch origin test2

 

差分を確認

$ git diff test1 origin/test2

 

mergeで取り込む

$ git merge origin/test2

 

先に書いたようにコミットメッセージ残しなさい、とvim画面が開いたら:qで抜ける。

 

参考
【Git】git mergeコマンドで異なるブランチの更新分を取り込む

(元ネタは2023年執筆記事)