この記事では、ターミナル(CLI)でのGit操作環境を前提として、実際にプロジェクトを構築していく手順に沿って使用するコマンドについてまとめていきます。
ローカルリポジトリの用意 (作成 or クローン)
Gitによるバージョン管理を行う際に最初にやることは、リポジトリの用意です。
自分の手元にローカルリポジトリを用意する方法は、以下二種類のどちらかです。
- 新規リポジトリを作成 :
git init - 既存の共有リポジトリから複製:
git clone <アドレス>
新規リポジトリを作成する場合
新規リポジトリを作成する場合は、履歴管理対象としたいディレクトリへ移動し、以下コマンドを実行します。
git init既存の共有リポジトリから複製する場合
既に作成・共有されているプロジェクトに参加する時や、テンプレートプロジェクトを利用する場合は、
複製するリモートリポジトリのアドレスを取得し、以下コマンドを実行します。
git clone <リポジトリアドレス>
# 例:`git clone https://github.com/username/project.git`変更発生~コミット
ファイルの状態に変更が発生してから、その変更履歴をコミットするまでの流れは以下の通りになります。
- ファイルを追加または編集(変更の発生)
- コミット対象とするファイルをインデックス登録(ステージング)
- コミットを実行して変更履歴を確定
ステージングとコミットの詳細については以下にまとめます。
ステージング:git add
編集や追加したファイルをインデックス登録(ステージング)するには、git add を使用します。
git add <ファイル名>
# 例: git add test_text.txt変更があった全ファイルを一括で追加する場合は、パラメータに「.」を指定します。
git add .コミット:git commit
コミットを実行する際は、-m でメッセージを設定しつつ、以下コマンドを使用します。
git commit -m "変更内容の説明"ワークツリーの状態確認 : git status
現在のワークツリーの状態を確認するには、git status を使用します
git status何もしていない現時点では以下のように表示されるはずです
※master の部分は、main のこともあるかもしれません(Gitインストール時の設定によります)
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)適当なファイルを追加後、もう一度実行してみると、以下のように「未追跡のファイル」として追加したファイルが表示されていることを確認できます。
>git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
test_img_32x32.png
test_text.txt
nothing added to commit but untracked files present (use "git add" to track)未追跡のファイルは、一度インデックスに登録することで、追跡対象として認識されます。
>git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: test_text.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
test_img_32x32.pngコミットを行うと、当該ファイルの表示がワークツリーから消えたことを確認できます。
>git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
test_img_32x32.png
nothing added to commit but untracked files present (use "git add" to track)リポジトリ履歴の確認: git log
リポジトリの履歴は、git log で確認できます。
>git log
commit f5359248e9323ff5817d743f2c364674d4ed49b7 (HEAD -> master)
Author: Test Name <you@example.com>
Date: Mon Sep 1 10:22:21 2025 +0900
テスト用テキストの追加より簡単な表示で確認したい場合は、--oneline オプションを使用します
> git log --oneline
f535924 (HEAD -> master) テスト用テキストの追加リモートリポジトリの登録とプッシュ
リモートリポジトリを扱う場合(=初回プッシュ時)、まずはそのリモートリポジトリを登録する必要があります。
以下の例では、指定したURLを、origin という名前で登録します
git remote add origin <リモートリポジトリのURL>プッシュの基本構文は以下になります(登録が必要なのは初回のみで、2回目以降は git push のみでプッシュが可能です)
git push <リポジトリアドレス> <ブランチ>ブランチの操作
以下に、主要なブランチの操作コマンドについて例とともにまとめます。
ブランチの作成と切替
新規ブランチの作成:
git branch feature/login作業ブランチの切り替え:
git checkout feature/login新しいブランチ作成と切り替えを同時に:
git checkout -b feature/loginブランチのマージ
ブランチで作業した変更をメインブランチ(通常 main または master)に反映:
git checkout main
git merge feature/loginリモートリポジトリとの同期
- リモートリポジトリを追加:
git remote add origin <リポジトリURL>- プッシュ(ローカルの変更をリモートに送信):
git push -u origin main- プル(リモートの変更をローカルに取り込む):
git pull origin main修正関連操作
以下には、各種修正操作について主要なものをまとめます。
amend :直前コミットの修正(再実行)
直前のコミットについて修正したい場合は、amend オプションを使用してコミットを再実行します。
用途/使用タイミング:
- ファイルのインデックス登録漏れ/誤登録対処
- コミットコメントの修正
revert:コミットを打ち消すコミット
特定のコミットを打ち消したい場合は、revert を使用して、指定したコミットを打ち消すコミットを作成することができます。(削除ではないため、公開済みのものでも安全に対応可能)
用途/使用タイミング:
- 公開済みコミットの安全な打消し
- リモートリポジトリの修正対処
reset:コミット/インデックス登録の取り消し
コミットやインデックス登録を取り消すには、reset を使用します。
以下のようなモードがあり、取り消しの範囲によって使い分けます。
| モード名 | 用途 |
|---|---|
| mixed (デフォルト) | インデックスの登録状態を取り消す |
| soft | コミット操作のみを取り消す (インデックス登録状態はそのまま) |
| hard | インデックス・コミットを含め、 一連のコミット操作を完全に取り消す |
cherry-pick:特定コミットの取り込み
cherry-pick は、別のブランチから指定したコミットをコピーし、自身のブランチに取り込むことができます。
別ブランチの変更を適用したい時以外に、ブランチを間違えてコミットしてしまった場合のリカバリーなどにも使用します。
rebase -i:コミット履歴の書き換え
コミットの書き換えや削除、統合などの操作が可能。
push前のコメント修正や履歴の統合整理のほか、コミット漏れしたファイルの追加などが主な用途。
慣れると便利なので使いがちですが、混乱の原因になるため、余程のこと以外では頻繁な使用は避けることをお勧めします。
基本的なGit運用フロー
最後に、基本的なGitの運用フローについて以下にまとめます。あくまで一例のため、参考程度にご参照ください。
- 作業開始
- 新規プロジェクトなら
git init - 既存プロジェクトなら
git clone <URL>
- 新規プロジェクトなら
- ブランチ作成(任意)
- 新機能や修正は別ブランチで作業
- mainブランチを汚さず、並行開発が可能
- 作業・編集
- コードやドキュメントを変更
- コードやドキュメントを変更
- 変更をステージング
git addでコミット対象に登録
- コミット
git commit -m "説明"- 変更の単位を小さくして履歴をわかりやすく
- リモートリポジトリに反映
git pushでGitHubなどに送信
- レビュー・マージ
- Pull Request(PR)等ででレビュー
- mainブランチにマージして正式反映
- ローカルのmainを更新
git pullで最新状態を取得- 次の作業に備える
