見出し画像

初心者向けチーム開発ガイド!Git を活用したワークフロー【コンピュータ】

大学やインターンシップ、会社の研修などにおいて、初めてチーム開発に取り組むという方は多いのではないでしょうか。その中で、メンバーやチーム全体で作成した成果物を管理することは、非常に重要です。

今回は、Git というツールを用いた、初心者向けの開発方法についてご紹介します。


Git とは

Git は、ファイルの変更履歴(バージョン)を管理する目的で、システム開発において広く利用されている無料のバージョン管理システムです。

誰が、いつ、どのファイルに、どのような変更を加えたかを管理できるため、チーム開発では非常に便利なツールとなります。

リポジトリとは

リポジトリは、ファイルの変更履歴(バージョン)を保存する場所(≒ フォルダ)です。ローカルリモートの2種類があります。

Windows では、リポジトリは「.git」フォルダがある場所です。「隠しファイル」設定をオンにすると表示されます。

ローカルリポジトリ:
個々のコンピュータ上にあるリポジトリ。開発者が作業を進め、変更を保存するために使用される。

リモートリポジトリ:
インターネット上のサーバにあるリポジトリ。チーム開発において、ソースコードの共有やバージョン管理のために使用される。GitHub や GitLab などのサービスがある。

ブランチとは

ブランチは、システム開発における作業ラインを分岐させる機能で、英語で「分岐」や「枝分かれ」を意味します。この機能により、開発者は同じプロジェクト上で複数の作業を同時並行で進行させることができます。

リポジトリを作成すると、デフォルトで「main」という名前のブランチが自動的に作成されます。基本的には、この main ブランチを基準に、新規ブランチを作成し、各ブランチで作業を進めます。

各ブランチは独立しており、他のブランチの作業に影響を与えずに、新機能の追加やバグ修正を行うことができます。ブランチでの作業が完了した後は、そのブランチを別のブランチに統合します。この操作を「マージ」と言います。

※以前は「master」という名前が使われていましたが、現在では「main」が一般的です。

Git の使い方

一般的な手順は、次の通りです。各操作は、GitHub Desktop やSourcetree などの Git を扱うソフトウェアを使うか、ターミナルやコマンドプロンプトで特定のコマンドを用いることで実行できます。

1. リモートリポジトリの作成

まず、GitHub や GitLab などのサービスを利用して、プロジェクトを共有するためのリモートリポジトリを作成します。これらのサービスでは、アカウント登録後、Web ブラウザ上で簡単にリポジトリを作成できます。

2. ローカルリポジトリの作成(クローン)

次に、リモートリポジトリを自分のコンピュータ上に複製します。この操作を「クローン」と言います。初めての場合、HTTPS でのクローンがオススメです。

git clone <リモートリポジトリのURL>

3. ローカルでの作業

クローンしたリポジトリは、自分のコンピュータ上にフォルダとして作成され、これがローカルリポジトリとなります。ここでは、自由にファイルの作成や編集が可能です。

4. 変更の保存(コミット)

作業内容をローカルリポジトリに保存します。この操作を「コミット」と言います。次の2つのステップで行います。

4.1. git add コマンド(ステージングエリアへの登録)

変更したファイルをコミット対象として登録します。ファイル名を直接指定するか、「.」を使用して全ての変更ファイルを一括登録することができます。これらのファイルは、「ステージングエリアインデックス)」と呼ばれる領域に一時的に保存されます。

git add 変更したファイル名

4.2. git commit コマンド(コミットの実行)

ステージングエリアに登録されているファイルを、ローカルリポジトリに保存します。このコマンドを実行して、初めてコミットされます。

git commit -m "変更部分に関するコメント"

5. 変更の反映(プッシュ)

ローカルリポジトリで保存した変更内容を、リモートリポジトリに反映します。この操作を「プッシュ」と言います。

git push origin <プッシュしたいブランチ名>

6. 変更の適用(プル)

リモートリポジトリから最新の変更を取得し、それを自分のローカルリポジトリに適用します。この操作を「プル」と言います。

git pull origin <プルしたいブランチ名>

Git のワークフロー

Git で開発を進める際、全ての変更を無計画に main ブランチに直接プッシュ・プルしたり、作成した develop ブランチに集約して最後に main にマージするのは、効率が悪く、トラブルの原因となりやすいです。

複数の開発者が同時に作業を行うと、「コンフリクト」というエラーが発生しやすくなり、バグ混入のリスクも高まります。また、各開発者がどのような機能を開発しているのか、全体像を把握しづらくなるという問題もあります。

コンフリクト(衝突):
複数の開発者が、同じファイルの同じ箇所を同時に編集した場合に発生する、変更内容の衝突のこと。どちらの変更を優先するかを決めなければ、作業を進めることができない。

そのため、チーム内であらかじめワークフロー(開発手順)を決めておくことが重要です。GitHub や GitLab などのサービスでは、いくつかの代表的なワークフローが提案されています。これらのワークフローを参考にし、プロジェクトに合わせてカスタマイズするのが一般的です。

おすすめのワークフロー

初めて Git でチーム開発を行う場合、次の3つのブランチを用意することをおすすめします。

main ブランチ(安定版):
動作確認が完了し、リリース準備が整ったコードを保持するブランチ。

develop ブランチ(開発統合用):
各開発者が作成した機能を統合し、テストを行うためのブランチ。

feature-○○ ブランチ(機能開発用):
各開発者が新機能の追加やバグ修正を行うためのブランチ。開発内容が一目で理解できるように、機能名やタスク名を○○部分に含める。

ブランチの作成・切り替え

新規ブランチを作成するには、次のコマンドを使用します。

git branch <作成するブランチ名>

作業するブランチを切り替えるには、次のコマンドを使用します。

git checkout <ブランチ名>

新規ブランチを作成して、すぐにそのブランチに切り替えることがよくあります。その場合は、次のコマンドで両方の操作を実行できます。

git checkout -b <作成するブランチ名>

プルリクエスト(マージリクエスト)の作成とレビュー依頼

feature-○○ ブランチでの作業が全て完了したら、その内容を develop ブランチにマージするために、GitHub や GitLab 上で「プルリクエストマージリクエスト)」を作成します。ここで、リクエスト作成者は、コードをレビューする人(レビュアー)を指定し、変更点の詳細をコメントで残します。

レビュアーは変更点をレビューし、問題がなければプルリクエストを承認します。これにより、そのブランチの内容が develop ブランチに反映されます。

最終的には、develop ブランチの内容も main ブランチにマージされることになるでしょう。

最後に

Git を使い始めたばかりの頃は、覚えることが多く、使いこなすのが難しいと感じるかもしれません。

しかし、その仕組みを一度理解すれば、チーム開発において非常に便利なツールとなります。一つずつ理解を深めていきましょう!

最後になりましたが、数あるサイトの中からこの記事を最後まで見てくださった方にお礼を申し上げます。どうもありがとうございました!

少しでも参考になれれば幸いです。


各種リンク


質問箱

この記事に関する内容や、筆者に対するメッセージ・ご意見・質問などがあれば、お気軽に投稿ください!


この記事が気に入ったらサポートをしてみませんか?