Gitは、ソースコードの変更履歴を管理するためのバージョン管理システムです。
現在の開発現場では、バージョン管理システムとしてGitが主流です。
個人開発でもチーム開発でも、Gitを使えることはWebプログラマーにとって基本的なスキルになっています。
この記事では、Gitとは何か、なぜ必要なのか、基本的なコマンド、そして開発現場でよく使われるGitの作業フローについて解説します。
Gitとは
Gitとは、ファイルの変更履歴を管理するためのツールです。
プログラムを書いていると、HTML、CSS、JavaScript、PHPなどのファイルを何度も変更します。
たとえば、デザインを直したり、処理を追加したり、エラーを修正したりします。
Gitを使うと、いつ、どのファイルを、どのように変更したのかを記録できます。
また、過去の状態を確認したり、必要に応じて前の状態に戻したりすることもできます。
手動でファイルを管理していると、次のようなファイル名が増えることがあります。
index.html
index_修正版.html
index_最終版.html
index_最終版2.html
index_本当の最終版.html
このような管理方法だと、どれが最新なのか分かりにくくなります。
Gitを使うと、ファイル名を増やさずに変更履歴を管理できます。
Gitを使う主なメリットは、次の通りです。
- 変更履歴を残せる
- 過去の状態を確認できる
- 変更前の状態に戻せる
- 複数人で同じプロジェクトを開発しやすくなる
- ブランチを使って作業を分けられる
- GitHubなどのサービスと連携できる
Webプログラマーとして仕事をするなら、Gitの基本操作は早めに慣れておきたい内容です。
GitとGitHubの違い
GitとGitHubは、名前が似ていますが同じものではありません。
| 名前 | 役割 |
|---|---|
| Git | 変更履歴を管理するツール |
| GitHub | Gitで管理したコードをインターネット上で保存・共有するサービス |
Gitは、自分のパソコン上でも使えます。
GitHubは、Gitで管理しているプロジェクトをオンラインで保存したり、他の人と共有したりするために使います。
個人開発では、自分のコードをGitHubに保存しておくことができます。
チーム開発では、GitHub上のリポジトリを使って複数人で作業します。
リポジトリとは、Gitで管理するプロジェクトの保管場所です。
自分のパソコンにあるリポジトリをローカルリポジトリ、GitHubなどにあるリポジトリをリモートリポジトリと呼びます。
| 用語 | 意味 |
|---|---|
| リポジトリ | Gitで管理するプロジェクトの保管場所 |
| ローカルリポジトリ | 自分のパソコン上にあるリポジトリ |
| リモートリポジトリ | GitHubなどインターネット上にあるリポジトリ |
| コミット | 変更内容を履歴として記録すること |
| ブランチ | 作業を分けるための枝のようなもの |
| マージ | 別のブランチの変更を取り込むこと |
Gitでよく使う基本コマンド
Gitでは、コマンドを使ってファイルの変更を管理します。
最初に覚えるなら、次のコマンドからで十分です。
| コマンド | 内容 |
|---|---|
git init | 現在のフォルダをGitで管理し始める |
git clone | リモートリポジトリを自分のパソコンにコピーする |
git status | 変更状況を確認する |
git add | コミットする変更を選ぶ |
git commit | 変更内容を記録する |
git log | コミット履歴を確認する |
git branch | ブランチを確認・作成する |
git checkout | ブランチを切り替える |
git pull | リモートリポジトリの最新状態を取り込む |
git push | 自分のコミットをリモートリポジトリに送る |
git merge | 別ブランチの変更を取り込む |
新しくGit管理を始める場合は、プロジェクトのフォルダで次のコマンドを実行します。
git init
変更状況を確認するときは、次のコマンドを使います。
git status
変更したファイルをコミット対象に追加する場合は、次のように書きます。
git add index.html
変更したファイルをまとめて追加する場合は、次のように書きます。
git add .
変更内容を履歴として記録するには、次のようにコミットします。
git commit -m "トップページを作成"
-mのあとには、コミットメッセージを書きます。
コミットメッセージには、何を変更したのか分かる内容を書きます。
ヘッダーのデザインを修正
お問い合わせフォームを追加
ログイン処理のエラーを修正
ブランチを作って切り替える場合は、次のように書きます。
git checkout -b feature/contact-form
すでにあるブランチへ切り替える場合は、次のように書きます。
git checkout main
基本のGitフロー
開発現場では、Gitを使って次のような流れで作業することが多いです。
- 最新のコードを取得する
- 作業用ブランチを作る
- ファイルを編集する
- 変更内容を確認する
- 変更をコミットする
- リモートリポジトリにプッシュする
- プルリクエストを作る
- レビュー後にマージする
まず、mainブランチに移動して、最新のコードを取得します。
git checkout main
git pull
次に、作業用ブランチを作ります。
git checkout -b feature/contact-form
この例では、feature/contact-formというブランチを作成して、そのブランチに切り替えています。
ブランチ名は、作業内容が分かる名前にすると管理しやすくなります。
feature/header-design
feature/login-page
fix/contact-form-error
fix/button-layout
ブランチを作ったら、HTML、CSS、JavaScript、PHPなどのファイルを編集します。
編集後は、変更状況を確認します。
git status
どの行を変更したか確認したい場合は、次のコマンドを使います。
git diff
問題がなければ、変更をステージングします。
git add .
そのあと、コミットします。
git commit -m "お問い合わせフォームを追加"
コミットしたら、作業ブランチをリモートリポジトリに送ります。
git push -u origin feature/contact-form
GitHubを使っている場合は、プッシュしたあとにプルリクエストを作ります。
プルリクエストとは、自分の変更をmainなどの本体ブランチに取り込んでもらうための依頼です。
プルリクエストでは、変更内容を確認し、必要に応じて他の人にレビューしてもらいます。
問題がなければ、作業ブランチをmainにマージします。
コマンドの流れだけをまとめると、次のようになります。
git checkout main
git pull
git checkout -b feature/contact-form
# ファイルを編集する
git status
git diff
git add .
git commit -m "お問い合わせフォームを追加"
git push -u origin feature/contact-form
# GitHubでプルリクエストを作成
# レビュー後にmainへマージ
最初はコマンドが多く見えるかもしれません。
ただ、流れとしては、最新にする、ブランチを作る、編集する、コミットする、プッシュする、プルリクエストを作る、という順番です。
mainブランチに直接コミットしない理由
チーム開発では、mainブランチに直接コミットしない運用がよくあります。
mainは、公開用や安定版として扱われることが多いからです。
作業途中のコードや、まだ確認していないコードをmainに入れると、他の人の作業や本番環境に影響する可能性があります。
そのため、次のような流れで作業します。
mainから作業ブランチを作る- 作業ブランチで変更する
- プルリクエストを作る
- レビューしてから
mainに入れる
この流れにすると、変更内容を確認してから本体側に反映できます。
Gitを使っていると、コンフリクトが起きることもあります。
コンフリクトとは、同じファイルの同じ部分を複数人が変更して、Gitが自動で判断できなくなる状態です。
コンフリクトが起きた場合は、どちらの変更を残すのかを確認して修正します。
コンフリクトを減らすためには、作業前にgit pullで最新状態を取り込んでおくことが大切です。
まとめ
Gitは、ソースコードの変更履歴を管理するためのバージョン管理システムです。
現在の開発現場では、バージョン管理システムとしてGitが主流です。
Gitを使うと、変更履歴を残したり、過去の状態を確認したり、複数人で同じプロジェクトを開発したりできます。
基本のGitフローは、次の通りです。
- 最新のコードを取得する
- 作業用ブランチを作る
- ファイルを編集する
git statusで変更状況を確認するgit addで変更をステージングするgit commitで変更を記録するgit pushでリモートに送る- プルリクエストを作る
- レビュー後に
mainへマージする
Webプログラマーを目指すなら、Gitの基本操作は早めに慣れておきたい内容です。
まずは、status、add、commit、pull、push、branch、checkoutの流れを練習してみましょう。

