こんな時どうしたらいいの? (業務上でのシチュエーション)
①私は、feature/1
というブランチでxxx
という機能を作る作業を進めていました。
②そこに上司のAさんが同じくfeature/1
というブランチにて、yyy
という機能を作る開発をし始めました。
③Aさんは私よりも作業スピードが早いため先にyyy
の機能の実装を終え、"yyyを実装"
というコミットメッセージでcommit
し、リモートのfeature/1
にpush
しました。
④その後、xxx
の実装が終わった私は、このままxxx
をcommit
+push
したらyyy
の機能はどうなるのだろう、、、
と不安になり、この場合の手順を上司に質問したので、それをまとめます。
作業手順
①xxx
の実装が完了したら、まず普通にステージング(add
)+コミット(commit
)までを行う
git add ファイル名
git commit -m "xxxを実装"
※ここで流れでpush
してしまわないように注意!!
②git pull
でyyyを実装
のコミットを含むブランチの最新状態を取り込む
git pull origin feature/1
※feature/1
は今回のシチュエーションのブランチ名なので、各自pullしてくるブランチ名に変更してください。
すると、上司のAさんが実装した"yyyを実装"
の内容(コード)が自分のローカルリポジトリに反映されるはずです。
ここでもし、"xxxを実装"
と"yyyを実装"
の内容で、同じファイルの同じ箇所(行)を変更していた場合、コンクリフト(競合)
が発生し、git側が「これどっちが正しいの??」となるため為、「正解はこっちですよ」とする作業を行わなければなりません。
コンクリフトが発生したら上司に確認を取るようにしましょう。
③git push
する
git push origin feature/1
これで"yyyを実装"
の内容を取り込みつつ"xxxを実装"
をcommit
+push
することができます。
続けてzzz
という作業も安心して進められます。
最後に
受託開発系企業に未経験として入社してから2ヶ月が経過し、最近初めてチーム開発を経験させていただく事になりました。
この記事のような初歩的な事が全く理解できていなかったので、上司に質問する毎日です。
特にgitに関しては1つミスると大変なことになりますし、専門用語が多くてネットの記事を読んでいても勘違いが発生しやすい為、気を遣わずに現場の方に質問した方が良いのではないかと思っています。(気を遣って質問せずにミスる方が恐ろしく迷惑をかけてしまいます)
同じ境遇の方、またはプログラミング初学者の方のお役に立てれば幸いです。