はじめに
今回、初めてチーム開発に関わる(といっても本当に触り程度)ことになったので、その際の基本操作と意味をまとめておきます。
よく使う操作ばかりですが、ブランチが多く、チームで使うブランチということで気をつけてやる必要がありました。(実際の操作は会社やチームにより全然違うと思います。)
0. 全体のイメージ
リモートにあるブランチと自分のところ(local)にあるブランチを分けて考えておくと良いと思います。
リモートでもローカルでも同じ名前になるのでイメージしにくかったのですが、以下のことを意識したら整理できてきました。
- どのブランチにもリモートとローカルが存在していて、基本的にPCで操作しているのは全てローカルのブランチ
- ローカルの内容をリモートに当てたり、リモートからローカルに取り込んでいる
(逆に言えばリモートブランチはこれだけでしか基本使わない) - リモートブランチのことは
origin
という名前で操作している - ブランチを移動した先も基本はローカルで、そこでの編集はまたリモート(origin)に当てる必要がある
1. ブランチを切る
全体のプロジェクトの作り
①mainブランチ : 本番環境。ユーザーが使う部分
②devブランチ : 開発検証環境。本番前の検証などを行う。
③featureブランチ : 開発環境。ファイルの作成、修正などは全てここで行う。
③で作成、修正を行なっていくので、そのためのブランチを②から切ります。
gitの操作
-
git checkout dev
devブランチに移動(このとき移動した先もローカルのdev) -
git fetch
ローカルのdevブランチにリモートのdevの最新情報を持ってくる(この時点ではまだ取り込んでいない) -
git pull origin dev
ブランチの最新化。最新情報をリモート(origin)からローカル(dev)に取り込む
※これ忘れると古い情報で進めることになるのでコンフリクト起きる原因になる -
git checkout -b feature
最新化したdevブランチからfeatureブランチを作成
2. 今いるブランチの変更を上の階層のブランチに当てる
切り取ってきたfeatureブランチで修正などを行なったらそれをdevのブランチに当てる必要があります。
(いきなりmainには行かない)
ここは手順が多くなります。また、一つ注意として、ただ作成や修正した内容はローカルにすら当てられていません。まずはその作業からです。
編集内容をローカルのfeatureブランチに当てる
-
git add .
編集内容をローカルに当てる前にステージングします -
git commit -m "message"
ローカルのfeatureブランチに当てます
ローカルのfeatureブランチの内容をリモートに当てる
-
git push origin feature
リモート(origin)にローカル(feature)の内容を当てます
リモートのdevにリモートのfeatureの内容を当てる
-
git checkout dev
devブランチに移動する(この時の移動先もローカルのdev) -
git fetch
まずはdevブランチを最新化(ブランチを切るときにもやったが、編集している間に誰かがdevにその人の変更を反映しているかもしれないから最新化する必要がある) -
git pull origin dev
リモートのdev(origin)からローカルのdevに最新情報を取り込む(この時は先ほどのfeatureの情報は入っていない) -
git merge feature
先程のfeatureブランチの情報を今いるdevブランチに取り込む(この時もローカルのdevに取り込まれている) -
git push origin dev
ローカルのdevをリモート(origin)に反映する
これでリモートのdevまで反映が完了です。
複数人で同時にこの作業をやると最新化されているのか分かりにくい状況になったりするので、連絡を取り合いながら順番に操作すると良いと思います。
最後に
自分で図などを作ってよりイメージを固めてみれば、自分がなんの操作をしているのかわかってくると思います。
私はいまだに先輩方に見ていただき、ぶつぶつ唱えながらやっていますが、自分だけでコンテンツを作っているわけではないので丁寧にやるべき作業なはず。コンフリクトが起こることもあるので、本当にやっていることがわかるまでは一人で勝手に作業しないようにします。。。