初心者向けGitの使い方バージョン管理と基本のGitフローを解説

Git/GitHub

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変更履歴を管理するツール
GitHubGitで管理したコードをインターネット上で保存・共有するサービス

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を使って次のような流れで作業することが多いです。

  1. 最新のコードを取得する
  2. 作業用ブランチを作る
  3. ファイルを編集する
  4. 変更内容を確認する
  5. 変更をコミットする
  6. リモートリポジトリにプッシュする
  7. プルリクエストを作る
  8. レビュー後にマージする

まず、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に入れると、他の人の作業や本番環境に影響する可能性があります。

そのため、次のような流れで作業します。

  1. mainから作業ブランチを作る
  2. 作業ブランチで変更する
  3. プルリクエストを作る
  4. レビューしてからmainに入れる

この流れにすると、変更内容を確認してから本体側に反映できます。

Gitを使っていると、コンフリクトが起きることもあります。

コンフリクトとは、同じファイルの同じ部分を複数人が変更して、Gitが自動で判断できなくなる状態です。

コンフリクトが起きた場合は、どちらの変更を残すのかを確認して修正します。

コンフリクトを減らすためには、作業前にgit pullで最新状態を取り込んでおくことが大切です。

まとめ

Gitは、ソースコードの変更履歴を管理するためのバージョン管理システムです。

現在の開発現場では、バージョン管理システムとしてGitが主流です。

Gitを使うと、変更履歴を残したり、過去の状態を確認したり、複数人で同じプロジェクトを開発したりできます。

基本のGitフローは、次の通りです。

  1. 最新のコードを取得する
  2. 作業用ブランチを作る
  3. ファイルを編集する
  4. git statusで変更状況を確認する
  5. git addで変更をステージングする
  6. git commitで変更を記録する
  7. git pushでリモートに送る
  8. プルリクエストを作る
  9. レビュー後にmainへマージする

Webプログラマーを目指すなら、Gitの基本操作は早めに慣れておきたい内容です。

まずは、statusaddcommitpullpushbranchcheckoutの流れを練習してみましょう。

タイトルとURLをコピーしました