私は現在、オンラインプログラミングスクール「やんばるエキスパート」で、4人チームで共同開発を行っています。
開発現状
ブランチは開発用のdevelopブランチをメインとしており、自分で作業する時は、developブランチから新しい作業ブランチを切って作業しています(ここでは仮に feature/hoge_fuga
とします)。そして、コンフリクトの解消時の注意点として、現在の開発ブランチにマージする手順をスクールの教材では、
git branch で作業ブランチにいることを確認後
git fetch --prune
git merge origin/develop
を行うように記載されており、「fetchってなに?」「--pruneってなに?」「merge origin/developって何で行うの?」と疑問になったので、自分で調べてまとめてみました。
git fetch --pruneとは?
git fetch
が、リモートリポジトリから最新情報を取ってくるコマンドで、--prune
オプションをつけることで、自動的にリモートリポジトリで消されたリポジトリを削除してから、ローカルリポジトリにも反映させてくれます。
ローカルリポジトリの作業ブランチにorigin/develop(開発用)ブランチをmergeする
現状、ローカルリポジトリには作業ブランチであるfeature/hoge_fuga
と origin/develop
が存在しています。そして、origin/develop
はリモートリポジトリと結びついています。`
git fetch --prune
でorigin/develop
が最新情報になってますのでここで、
git merge origin/develop
コマンドを使う事によって、ローカル環境のfeature/hoge_fuga
が最新の状態に更新されるということになります。
まとめ
スクールの教材などを行っていると、良い方向に誘導してくれますが、それだけではいけないと思ってます。自分の頭で考え、「これってどういうこと?」というのは今後も深堀りしていきたいと思います。もし今回のまとめが「ここ違うよ!」って点がありましたら教えていただけると嬉しいです。最後までお読みいただきありがとうございました。