Git

Git の基本コマンド

Git でバージョン管理を始めるための 3 つの基本コマンドを学びます。
initaddcommit の 3 ステップが Git の基本的な流れです。

Git の 3 つのエリア

概念
📁

ワーキングツリー

用語

実際に編集する
ファイルの場所

git add
📋

ステージングエリア

用語

コミット準備中の
変更を置く場所

git commit
🗂️

リポジトリ

用語

変更履歴が
永続的に保存される場所

1

git init — リポジトリを作成する

コマンド

プロジェクトのフォルダで git init を実行すると、 そのフォルダが Git リポジトリになります。.git という隠しフォルダが作成され、 以降すべての履歴がここに保存されます。

ターミナル
# プロジェクトフォルダに移動 $ cd my-project # Git リポジトリを初期化 $ git init Initialized empty Git repository in /my-project/.git/ # .git フォルダが作成されたことを確認(Mac/Linux/Git Bash) $ ls -la drwxr-xr-x  .git ← これが Git の管理フォルダ
Windows の方へ: ls -la は Mac/Linux のコマンドです。 Windows コマンドプロンプトでは dir、 PowerShell では ls が使えます。 Git for Windows に付属の Git Bash を使っている場合は ls -la がそのまま動きます。
2

git add — 変更をステージングする

コマンド

ファイルを編集したら、git add でコミットする変更を選びます。 「この変更を記録に含める」という宣言のようなものです。

git add ファイル名 コマンド

特定のファイルだけをステージング

git add . コマンド

現在フォルダの全変更をステージング

git add -p コマンド

変更を確認しながら選んでステージング

ターミナル
# ファイルを作成・編集した後 $ git status Untracked files:  index.html ← まだ追跡されていない # index.html をステージングに追加 $ git add index.html $ git status Changes to be committed:  new file: index.html ← 緑になった!コミット待ち
3

git commit — 変更を記録する

コマンド

ステージングした変更を git commit で履歴に記録します。 -m オプションでコミットメッセージを添えましょう。

ターミナル
# 変更を記録(メッセージ付き) $ git commit -m "トップページを追加" [main (root-commit) a1b2c3d] トップページを追加  1 file changed, 20 insertions(+) # 履歴を確認 $ git log --oneline a1b2c3d トップページを追加

コミットメッセージのコツ

✗ 悪い例

  • "修正" — 何を修正した?
  • "update" — 意味が曖昧
  • "asdfg" — 意味なし

✓ 良い例

  • "ログインフォームのバリデーションを追加"
  • "fix: ボタンが押せないバグを修正"
  • "feat: ダークモードを実装"
コマンド

git log — 履歴を読む

git log はそのまま実行すると情報が多すぎます。オプションを組み合わせて見やすくしましょう。

git log --oneline コマンド

1コミット1行で表示。全体像を素早く把握するときに使う。

a1b2c3d feat: ログインフォームを追加
e4f5g6h fix: ボタンが押せないバグを修正
7h8i9j0 feat: トップページを追加
git log --oneline --graph --all コマンド

ブランチの分岐・マージをグラフで表示。どのブランチで何が起きたか一目でわかる。

* a1b2c3d (HEAD -> main) feat: マージ
|\  
| * e4f5g6h (feature/login) feat: ログインを追加
|/  
* 7h8i9j0 feat: トップページを追加
git show コミットID コマンド

特定コミットの詳細(変更差分)を表示。コミットIDは --oneline で確認した7桁を使う。

commit a1b2c3d
Author: your-name <your@email.com>

    feat: ログインフォームを追加

+<form id="login">...</form>

その他の便利コマンド

コマンド git status

現在の状態を確認。変更されたファイル・ステージング済みのファイルが一覧で見える。

コマンド git diff

ステージングしていない変更の差分を表示。何を変えたか確認できる。

コマンド git restore ファイル名

ステージングしていない変更を取り消す(危険:元に戻せない)。