基礎知識

Git 入門(前編):バージョン管理の基礎と初期設定

Git の基本コマンド(init, add, commit, push)からブランチ運用、GitHub での Pull Request まで、初心者が個人開発からチーム開発にステップアップするために必要な知識を網羅的に解説します。

#github#git
Git 入門(前編):バージョン管理の基礎と初期設定

「Git は完全にソフトウェアの世界を変えた」— Git はコードの歴史書であり、すべての開発者が身につけるべきスキルです。


はじめに

この記事のゴール

  • Git とは何か、なぜ必要なのかを理解する
  • Git のインストールと初期設定を完了する
  • 最初のコミットができるようになる

シリーズ構成

この Git/GitHub 入門は 3 部構成です:

  1. Git 入門(前編):バージョン管理の基礎と初期設定 ← 今ここ
  2. Git 入門(後編):ブランチ運用と変更の取り消し
  3. GitHub 入門:リモート連携とチーム開発

1. Git の基礎理解(概念編)

Git とは?なぜ必要なのか?

Git は「バージョン管理システム」と呼ばれる仕組みで、ファイルの変化を記録し、必要に応じていつでも元に戻せるようにするためのツールです。

ソフトウェア開発では、コードを書き進めるたびにアプリの状態が少しずつ変わっていきます。しかし開発中のアプリは、うまく動く時もあれば突然壊れることもあり、常に変化の連続です。 Git を使うと、そうした一つひとつの変更点を記録し、必要な時に過去の状態へ戻したり、どこで問題が起きたのかを追いやすくなります。

また Git には、ブランチ(作業用の分岐)を作って並行して開発し、あとでマージ(統合)できる仕組みがあります。これによって、複数人が同時に作業しても混乱せずに進められます。

Git が解決する問題

コード変更の履歴管理

「昨日書いたコードに戻したい」「1週間前のバージョンが必要」— こんな経験はありませんか?Git を使えば、すべての変更履歴が保存され、いつでも過去の状態に戻れます。

バージョンごとの比較・復元

Git では各コミット(スナップショット)に一意の ID が割り当てられ、変更内容を比較したり、特定のバージョンに復元したりできます。

ブランチでの並行作業

新機能を開発しながら、同時にバグ修正も行いたい。Git のブランチ機能を使えば、複数の作業を並行して進められます

Git と GitHub の違い

GitGitHub
ローカルの履歴管理ツールGit のデータをクラウドで共有する場所
PC にインストールして使うWeb サービス(ブラウザからアクセス)
オフラインでも使えるインターネット接続が必要
無料のオープンソース無料プラン+有料プランあり

Git はあなたの PC 上で動く「バージョン管理エンジン」、GitHub はそのデータを保存・共有するための「クラウドサービス」と考えてください。


2. Git を始める前の準備

Git のインストール確認

Mac の場合

git --version

Mac では Xcode Command Line Tools に Git が含まれています。上記コマンドでバージョンが表示されれば OK です。

Windows の場合

Git for Windows からインストーラーをダウンロードしてインストールします。

VSCode 推奨プラグイン

GitLens を強くおすすめします:

  • コード内に有用な情報を直接埋め込んで表示
  • Git 履歴をナビゲートできる追加パネル
  • どの行が誰によって、いつ変更されたかが一目でわかる

3. プロジェクトの初期化

プロジェクトフォルダへの移動

それでは、実際に手を動かして Git を体験してみましょう。まず、ターミナル(VS Code のターミナル、Mac のターミナル.app、Windows の PowerShell など)を開きます。

次に、Git で管理したいプロジェクトフォルダに移動します。cd(change directory)コマンドを使います。ディレクトリとは、フォルダのことです。

私はよく以下のような場所でプロジェクトを管理しています:

  • Mac: /Users/[あなたの名前]/Projects/[プロジェクト名]
  • Windows: C:\Users\[あなたの名前]\Projects\[プロジェクト名]

皆さんも、自分の好きな場所(ドキュメントフォルダやデスクトップなど)で大丈夫です。

# フォルダを作成(まだない場合) # Mac / Linux mkdir -p ~/Projects/my-first-project # Windows (PowerShell) mkdir -Force ~\Projects\my-first-project
# フォルダに移動 # Mac / Linux cd ~/Projects/my-first-project # Windows (PowerShell) cd ~\Projects\my-first-project

💡 Tip: ~(チルダ)は Mac/Linux/PowerShell でホームディレクトリを表すショートカットです。/Users/あなたの名前C:\Users\あなたの名前 と同じ意味になります。

git init の意味

git init

このコマンドを実行すると、現在のディレクトリに .git という隠しディレクトリが作成されます。これが Git がすべての履歴を保存する場所です。

VS Code のソースコントロールパネルからも初期化できます。 パネルに「ソース管理プロバイダーが登録されていません」と表示されている場合は、「リポジトリを初期化する」をクリックしましょう。

⚠️ Pro Tip: Git を完全に削除するには

rm -rf .git

この .git ディレクトリを削除すれば、Git を初期化前の状態に戻せます。ただし、すべての履歴が消えるので要注意!


4. .gitignore の重要性

なぜ必要か?

すべてのファイルをバージョン管理する必要はありません。むしろ、管理すべきでないファイルがあります:

  • 機密情報:API キー、パスワード、環境変数→一般に.env ファイルなどに格納します。
  • 依存関係node_modules(npm install で再生成できる)
  • ログファイル.log ファイル
  • ビルド成果物distbuild フォルダ

これらは、Webアプリ開発の場合によくある例ですが、他の分野でもよく.gitignore ファイルを使って、Git に無視させる操作を行います。

典型的な .gitignore の例(Node.js プロジェクト)

# 依存関係 node_modules/ # 環境変数 .env .env.local .env.*.local # ログ *.log npm-debug.log* # ビルド成果物 dist/ build/ .next/ # OS 生成ファイル .DS_Store Thumbs.db

💡 Pro Tip: 自動生成する

VS Code のプラグインを使えば、環境に合わせたデフォルトの .gitignore を自動生成できます。手作業でイチから書く必要はありません。


5. コミット(変更のスナップショット)

コミットは、ファイルの変更を記録する操作です。一意の ID を持ち、Git の知らないところで変更することはできません。

実は、Git を初期化した後、そのプロジェクト内でファイルを作成・変更しても、Git にはそれが記録されていません。宙ぶらりんの状態です。それを確定するために、変更を Git に保存する必要があります。

さらに、コミットには名前(メッセージ) をつけることができます。これは、後で自分やチームメンバーが「この変更は何だったっけ?」と振り返るときに非常に役立ちます。

しかし、通常は一度に複数のファイルを変更するため、どのファイルをコミットするか指定する必要があります。そのため、以下の 2 段階の操作になります:

  1. ステージング: コミットするファイルを選択する
  2. コミット: メッセージをつけて保存する

💡 難しく聞こえるかもしれませんが、スマホで写真を削除するときと同じです。削除したい写真を複数選択して、ゴミ箱に入れますよね?それと同じイメージです。

ステージング(git add)

コミットに含めたいファイルを「ステージング」します。

# 特定のファイルをステージング git add index.js # 全ファイルをステージング git add .

VS Code では、ソースコントロールパネルでファイル横の + ボタンをクリックするだけです。

ステージングを取り消す

git reset

⚠️ 危険: --hard フラグを使うと、ステージングを解除するだけでなく、変更内容も完全に削除されます!

# 危険!変更が完全に消える git reset --hard

コミット(git commit -m)

git commit -m "✨ 新機能を追加"

良いコミットメッセージの書き方

# 1行目:要約(50文字以内) # 2行目:空行 # 3行目以降:詳細な説明 git commit -m "✨ ユーザー認証機能を追加 - JWT トークンによる認証を実装 - ログイン/ログアウト API を作成 - パスワードハッシュ化に bcrypt を使用"

💡 Pro Tip: 絵文字を使うと GitHub でのスター数が増える...かも?冗談はさておき、絵文字はコミットの種類を視覚的に区別するのに便利です。

小さく細かくコミットする理由

  • 壊滅的なコードの損失を防げる
  • 変更履歴が追いやすくなる
  • コンフリクト解決が楽になる(100ファイルより1ファイルの方が対処しやすい)

まとめ

この記事では、Git の基礎概念と初期設定について学びました:

  • ✅ Git はバージョン管理システムで、コードの履歴を追跡する
  • git init でリポジトリを初期化
  • .gitignore で不要なファイルを除外
  • git add + git commit でスナップショットを保存

次のステップ

次の記事「Git 入門(後編):ブランチ運用と変更の取り消し」では、以下を学びます:

  • ブランチの作成と切り替え
  • git reset の 3 つのモード
  • git stash で作業を一時保存

コマンドチートシート(前編)

# 初期化 git init # リポジトリを初期化 # 基本操作 git status # 状態を確認 git add . # 全ファイルをステージング git add <file> # 特定ファイルをステージング git commit -m "メッセージ" # コミット git log --oneline # 履歴を確認 # ステージング取り消し git reset # ステージング解除(変更は保持)

次の記事:Git 入門(後編):ブランチ運用と変更の取り消し

この記事をシェアする