はじめに
はじめまして、FY21新卒 アプリ開発Gの深山 侑花です。
チーム開発において作業効率を高めたり、多くのファイルを管理するために利用されるバージョン管理ツールGitの運用方法についてまとめました。
0. 基礎知識
バージョン管理とは
バージョン管理とは、ファイルの追加や変更履歴を管理することをいいます。 これにより、過去の変更箇所の確認や、特定の時点の状態に戻すなどの作業が可能となります。
Gitとは
Gitとは、バージョン管理を行うためのシステムです。 Gitのバージョン管理機能を組み込んだWebベースのプラットフォームをGitHubといいます。
リポジトリとは
リポジトリとは、バージョン管理によって管理されるファイルと履歴情報を保管する領域のことをいいます。 リポジトリの配下でファイルやディレクトリを操作することで、バージョン管理を行うことができます。 Gitでは、個々のマシン上のリポジトリでの作業後、その内容をサーバー上のリポジトリに集約するという流れで開発を進めます。 その個々のリポジトリをローカルリポジトリ、集約先のサーバー上のリポジトリをリモートリポジトリと呼びます。
1. Gitの基本的な使い方
ローカルリポジトリの変更をリモートリポジトリに反映させる基本操作の説明です。
Gitは、
- ステージング
- コミット
- プッシュ
の流れが基本操作となります。
1-0. 作業ディレクトリをクローン(clone)する
共用リポジトリを利用して開発を進める場合、クローンして作業ディレクトリをローカルに作成します。 以下のコマンド
git clone [Git上のディレクトリパス]
を実行しましょう。
1-1. コミットの準備
ローカルリポジトリで変更したファイルを、ステージングします。 ステージングとは、変更内容を一時的に保存する領域にファイルを登録することです。ステージングされたファイルがコミット対象となります。
// 対象のファイルのみ
git add <filename>
// 複数ファイルの指定
git add <filename> <filename> ...
// 任意のディレクトリ下全て
git add <directory>/
// 変更があったファイル全て
git add *
1-2. コミット
コミットとは、ステージングされたファイルをローカルリポジトリへ追加することです。
以下のコマンドでコミットをすることができます。
git commit -m "<コミットメッセージ>"
-mはコミットメッセージを入力するオプションです。
1-3. リモートリポジトリへのプッシュ
ローカルリポジトリの変更をGitHub上のリモートリポジトリに反映させるプッシュと呼ばれる作業を行います。
git push
2. ブランチ作業
2-1. ブランチとは
ブランチとは、同時進行で複数バージョンの開発を行うためのしくみです。
これにより、変更履歴を分岐した開発を行うことができます。
リポジトリを作成した際に、main、masterなどと名前のついた初期ブランチが用意されています。
初期ブランチとは別にバージョン管理上の履歴を分離し、並行して開発を進める場合、別に新規でブランチを作成し、そのブランチ上にコミットするという段取りで開発を進めることになります。
新規ブランチは以下のコマンドで作成します。
git branch <ブランチ名>
作成したブランチには
checkoutコマンドで移動できます。
git checkout <移動するブランチ名>
ローカルに存在するブランチには、
git branchコマンドで確認することができ、現在作業を行っているブランチには「*」がついています。
$ git branch
* develop
master
2-2. ブランチでのプッシュ
ブランチの変更内容を反映させる場合は以下のようにプッシュしてください。
git push origin <ブランチ名>
GitHub上では、プッシュ先のブランチで変更を確認することができます。
プッシュ先ではないブランチでは変更内容が反映されないことも確認できます。
2-3. コードレビュー / マージ
ブランチで開発作業が完了したら、メインとなるブランチに変更内容を取り込むマージを行います。 マージを行う際に、作業者は、GitHub上でプルリクエストと呼ばれる機能で、変更をマージするよう要請します。
- GitHub上で任意のブランチを開き、[New pull request]をクリックします。

マージ先のブランチと現在のブランチを選択し、[Create pull request]をクリックします。

マージ先のブランチと現在のブランチを確認し、プルリクエスト名やレビュー内容を記入し、[Create pull request]をクリックします。

他の作業者は、変更内容についてのコメントや修正の依頼を行うコードレビューを行うことができます。 以下の手法でコードレビューを行うことができます。
深山侑花