gitとgithubを利用した、チーム開発

現在、ホームページ制作システムをチーム開発している。チームで開発を進めることで、チームメンバーの誰かが何らかの事情で開発できなくなっても、他のメンバーで開発を止めることなく続けることができるようになる。また、さまざまな視点から見ることでバグを見つけやすくなったり、他のメンバーのよりよいコーディングを見ることで自分の勉強になったりと良いことはたくさんある。

チーム開発をする際には、gitバージョン管理システムとgithubがとても便利だ。具体的には、以下のことができるようになる。




○githubでのソースコードの共有と、更新内容の確認


まずは、githubでプロジェクトリポジトリの作成、初期設定、コラボレーターの設定を行うことで、githubでのソースコードの共有ができるようになる。
自分のローカル環境にあるソースコードをgithubへ送信する時は、


$ git push <送信先リポジトリ(例:origin)> <送信したいブランチ(例:master)>

で実行できる。送信先リポジトリは、.git/configファイルで設定されている。
また、githubに上がっているコードを自分のローカル環境に反映させたい時は、

$ git pull

コマンドで実行できる。




○作業用branchをきることで、共有コードを荒らさない環境で開発が行える


ローカル環境で開発を行う際、共有コードをmasterブランチに置き、実際の開発作業を別のブランチ内で行うことで、共有コードを荒らさずに開発を進められる。
ブランチを作る(きる)には、masterブランチ内で、

$ git checkout -b <作業用ブランチ名>

を実行することで、作業用ブランチの作成と作業用ブランチへの移動を同時に行える。ちなみに、ブランチの移動は、


$ git checkout <移動先ブランチ名>

で行える。




○作業用ブランチをmergeすることで、自分で変更した内容を共有コードへ反映できる


作業用ブランチでcommitまでしたら、後はその変更内容を共有コードへ反映させて、conflictが無いのを確認したら、最後にgithubへpushする。
共有コードへ反映させるために、まずmasterブランチへ移動し、共有コードを最新化する(git pullコマンドの実行)。その後、masterブランチ内で



$ git checkout -b <merge用ブランチ名(任意)>

を実行し、merge用ブランチへ移動する。merge用ブランチ内で、


$ git merge <mergeしたいブランチ名>

コマンドを実行し、mergeする。conflictが無ければ、masterブランチへ移動を、もしconflictがあれば、その部分のソースコードを修正し、コミットをしてからmasterブランチへ移動する。最後にmerge用ブランチをmasterブランチへmergeし、githubへpushして更新完了。

改めて作業の流れをまとめると、
[masterブランチ内]→コードの最新化(git pull)→[作業用ブランチへ移動]→実装、コミット→[masterブランチへ移動]→コードの最新化(git pull)→[merge用ブランチへ移動]→作業用ブランチをmerge→conflictの修正(conflictが起きたら)→[masterブランチへ移動]→merge用ブランチをmerge→(念のため最後にgit pullした方がよいと思います)→githubへ反映(git pushコマンド)