プログラミングを始めたばかりの方にとって、「Git」は少し難しく感じるかもしれません。でも、基本的なコマンドさえ覚えてしまえば、チーム開発も個人開発もスムーズに進められるようになります。
この記事では、Gitの基本コマンドから実務でよく使うコマンドまで、初心者の方にもわかりやすく解説していきます。「とりあえずこれだけ覚えておけば大丈夫!」というコマンドを厳選してご紹介しますので、ぜひ参考にしてください。
Gitとは?コマンドを使う前に知っておきたい基礎知識

Gitは、ファイルの変更履歴を記録して管理できる「バージョン管理システム」です。「いつ、誰が、どのファイルを、どのように変更したか」を細かく追跡できるため、間違って上書きしてしまった場合でも、過去のバージョンに戻すことができます。
Gitを使うと、以下のようなメリットがあります。
- 変更履歴の管理:過去のバージョンにいつでも戻せる
- チーム開発の効率化:複数人で同時に作業しても安全
- バックアップ機能:GitHubなどのリモートリポジトリに保存できる
- 実験的な開発:本番環境に影響を与えず新機能を試せる
Gitではコマンドライン(黒い画面)を使って操作することが多いですが、慣れればとても便利です。まずは基本的なコマンドから覚えていきましょう。
初期設定に必要なGitコマンド
Gitを使い始める前に、まず自分の名前とメールアドレスを登録しておく必要があります。この情報は、コミット(変更の記録)を行うたびに自動的に記録されるため、最初に一度だけ設定しておけばOKです。
ユーザー名とメールアドレスの設定
git config --global user.name "あなたの名前"
git config --global user.email "your-email@example.com"
この設定は、あなたのパソコン全体に適用されます。--globalオプションを付けることで、どのプロジェクトでも同じ設定が使われるようになります。
設定内容の確認
git config --list
設定が正しく登録されているか確認したいときは、このコマンドを使います。ユーザー名やメールアドレスなど、すべての設定内容が表示されます。
Gitのバージョン確認
git version
インストールされているGitのバージョンを確認できます。Gitが正しくインストールされているかどうかのチェックにも使えます。
基本的なGitコマンド一覧
ここからは、実際の開発でよく使う基本的なGitコマンドをご紹介します。カテゴリごとに分けて説明しますので、自分が必要なコマンドから覚えていきましょう。
リポジトリの作成・複製
git init – 新しいリポジトリを作成
git init
今いるディレクトリ(フォルダ)を、Gitで管理できるリポジトリに変換します。このコマンドを実行すると、.gitという隠しフォルダが作成され、そこに変更履歴などが保存されるようになります。
初めて自分のプロジェクトをGitで管理したいときに使います。
git clone – 既存のリポジトリをコピー
git clone https://github.com/username/repository.git
GitHubなどにあるリモートリポジトリを、自分のパソコンにコピーします。他の人が作ったプロジェクトに参加するときや、自分の別のプロジェクトをダウンロードするときに使います。
URLは、GitHubのリポジトリページにある「Code」ボタンから取得できます。
ファイルの追加・コミット
git status – 現在の状態を確認
git status
ファイルの変更状態を確認できます。「どのファイルが変更されているか」「どのファイルがコミット待ちか」などが一目でわかります。
何か操作する前に、まず現在の状態を確認する習慣をつけると、ミスを防げます。
git add – ファイルをステージングエリアに追加
# 特定のファイルを追加
git add index.html
# すべての変更ファイルを追加
git add .
# 複数のファイルを指定
git add index.html style.css
変更したファイルを「次のコミットに含めるファイル」として登録します。この操作を「ステージング」と呼びます。
.を使うと、カレントディレクトリ以下のすべての変更ファイルを一度に追加できるので便利です。ただし、不要なファイルまで追加されないよう注意しましょう。
git commit – 変更を記録
# メッセージ付きでコミット
git commit -m "トップページのデザインを修正"
# 詳細なメッセージを書く(エディタが開く)
git commit
# 変更したファイルを自動追加してコミット
git commit -am "バグを修正"
ステージングしたファイルの変更を、正式に履歴として記録します。-mオプションの後にコミットメッセージを書くことで、「何を変更したか」を記録できます。
コミットメッセージは、後で見返したときにわかりやすいよう、具体的に書くことが大切です。
変更の確認
git diff – 変更内容を確認
# ステージング前の変更を確認
git diff
# ステージング済みの変更を確認
git diff --cached
# 特定のファイルの変更を確認
git diff index.html
ファイルのどの部分を変更したか、詳しく確認できます。コミットする前に変更内容をチェックするのに便利です。
緑色で表示される行が追加された部分、赤色で表示される行が削除された部分です。
git log – コミット履歴を表示
# 通常のログ表示
git log
# 1行ずつ簡潔に表示
git log --oneline
# グラフ付きで表示
git log --oneline --graph --all
# 直近3件のみ表示
git log -3
過去のコミット履歴を確認できます。「誰が、いつ、何を変更したか」がすべて記録されています。
--onelineオプションを付けると、1つのコミットが1行で表示されるため、履歴全体を把握しやすくなります。
ブランチ操作
git branch – ブランチの管理
# ブランチ一覧を表示
git branch
# 新しいブランチを作成
git branch feature-login
# ブランチを削除
git branch -d feature-login
# 強制削除(マージしていない場合)
git branch -D feature-login
ブランチとは、開発の「分岐点」のようなものです。新機能を開発するときは、本番用のコード(mainブランチ)から分岐して、別のブランチで作業するのが一般的です。
ブランチ名は、feature-login(ログイン機能)やfix-bug-123(バグ修正)のように、わかりやすい名前を付けましょう。
git checkout / git switch – ブランチを切り替え
# 既存のブランチに切り替え(旧コマンド)
git checkout feature-login
# 新しいブランチを作成して切り替え(旧コマンド)
git checkout -b feature-login
# 既存のブランチに切り替え(新コマンド)
git switch feature-login
# 新しいブランチを作成して切り替え(新コマンド)
git switch -c feature-login
作業するブランチを切り替えます。Gitの新しいバージョンでは、checkoutよりもswitchの使用が推奨されています。
switchの方が直感的でわかりやすいため、これから始める方はswitchを覚えることをおすすめします。
git merge – ブランチを統合
# 現在のブランチに別のブランチを統合
git merge feature-login
# コミットを作成せずにマージ
git merge feature-login --no-commit
別のブランチで行った変更を、今いるブランチに統合します。たとえば、新機能の開発が完了したら、mainブランチにマージして本番環境に反映させます。
マージする前に、必ずgit statusで状態を確認し、コミットしていない変更がないかチェックしましょう。
リモートリポジトリとの連携
git remote – リモートリポジトリの管理
# リモートリポジトリを追加
git remote add origin https://github.com/username/repository.git
# リモートリポジトリの一覧を表示
git remote -v
# リモートリポジトリを削除
git remote remove origin
GitHubなどのリモートリポジトリ(インターネット上のリポジトリ)を登録・管理します。originは、リモートリポジトリの「ニックネーム」のようなものです。
通常、メインのリモートリポジトリにはoriginという名前を付けることが慣例となっています。
git fetch – リモートの変更を取得
# すべてのリモートブランチの変更を取得
git fetch origin
# 特定のブランチのみ取得
git fetch origin main
リモートリポジトリの最新情報を取得します。ただし、ローカルのファイルには反映されません(取得だけして、統合はしない)。
他の人が何を変更したか確認してから、自分のブランチに反映するかどうか判断したいときに便利です。
git pull – リモートの変更を取得して統合
# リモートの変更を取得して現在のブランチに統合
git pull origin main
# リベース方式でプル
git pull --rebase origin main
リモートリポジトリの最新の変更を取得し、自動的に現在のブランチに統合します。git fetchとgit mergeを組み合わせた操作です。
チーム開発では、作業を始める前にgit pullで最新の状態に更新する習慣をつけましょう。
git push – ローカルの変更をリモートに送信
# リモートリポジトリに変更を送信
git push origin main
# 新しいブランチを初めてプッシュ
git push -u origin feature-login
# すべてのブランチをプッシュ
git push --all origin
ローカルリポジトリの変更を、リモートリポジトリに反映させます。-uオプションは、初回プッシュ時に使うと、以降はgit pushだけで同じリモートブランチにプッシュできるようになります。
プッシュする前に、必ずgit pullで最新の状態に更新し、コンフリクト(競合)が起きないようにしましょう。
よく使う便利なGitコマンド
基本コマンドに慣れてきたら、作業効率をさらに上げる便利なコマンドも覚えていきましょう。
git stash – 作業を一時保存
# 現在の変更を一時保存
git stash
# 保存した作業を復元
git stash pop
# 保存した作業の一覧を表示
git stash list
# 特定の作業を復元
git stash apply stash@{0}
# 保存した作業を削除
git stash drop
「途中で別の作業を優先しなければならない」ときに便利です。今の変更を一時的に退避させて、後で再開できます。
たとえば、新機能の開発中に緊急のバグ修正が入ったとき、stashで作業を保存してから別のブランチに切り替えられます。
git tag – タグを付ける
# タグを作成
git tag v1.0.0
# メッセージ付きタグを作成
git tag -a v1.0.0 -m "バージョン1.0.0リリース"
# タグ一覧を表示
git tag
# リモートにタグをプッシュ
git push origin v1.0.0
特定のコミットに目印(タグ)を付けられます。主にリリースバージョンの管理に使われます。
タグを付けておくと、「バージョン1.0.0はどのコミットだったか」がすぐにわかるため、過去のバージョンに戻すのも簡単です。
git cherry-pick – 特定のコミットだけ取り込む
# 特定のコミットを現在のブランチに取り込む
git cherry-pick abc1234
他のブランチから、特定のコミット(変更)だけを取り込みたいときに使います。ブランチ全体をマージせず、必要な変更だけをピックアップできます。
コミットIDは、git logで確認できます。
git rebase – コミット履歴を整理
# mainブランチの最新状態を基準に、現在のブランチの履歴を書き換え
git rebase main
# 最新3件のコミットを整理
git rebase -i HEAD~3
コミット履歴をきれいに整理できます。複数のコミットを1つにまとめたり、コミットの順序を変更したりできます。
ただし、すでにリモートにプッシュしたコミットをrebaseで変更すると、他のメンバーに影響が出るため注意が必要です。
git show – コミットの詳細を表示
# 最新のコミット内容を表示
git show
# 特定のコミットの内容を表示
git show abc1234
特定のコミットで何が変更されたかを確認できます。ファイルの変更内容も一緒に表示されるため、詳細な確認に便利です。
トラブルシューティング用コマンド

開発中に問題が起きたときに役立つコマンドをご紹介します。
git reset – コミットを取り消す
# 直前のコミットを取り消し(変更は残す)
git reset --soft HEAD^
# 直前のコミットを取り消し(ステージングは残す)
git reset --mixed HEAD^
# 直前のコミットを取り消し(変更も削除)
git reset --hard HEAD^
# 特定のコミットまで戻る
git reset --hard abc1234
コミットを取り消したいときに使います。--soft、--mixed、--hardの3つのモードがあり、それぞれ取り消し方が異なります。
--hardは変更が完全に消えてしまうため、使う前に必ず内容を確認しましょう。
git revert – コミットを打ち消す
# 特定のコミットを打ち消す新しいコミットを作成
git revert abc1234
resetと似ていますが、revertは「打ち消しのコミット」を新しく作成します。すでにリモートにプッシュしたコミットを取り消したいときは、こちらを使います。
履歴が残るため、「誰が、いつ、何を取り消したか」が記録されます。
git restore – ファイルの変更を元に戻す
# ファイルの変更を元に戻す
git restore index.html
# ステージングを解除
git restore --staged index.html
checkoutの代わりに使える新しいコマンドです。ファイルの変更を取り消したり、ステージングを解除したりできます。
git switch(ブランチ切り替え)とgit restore(ファイル復元)で、checkoutの機能が分かれました。
git clean – 未追跡ファイルを削除
# 削除されるファイルを確認(実行はしない)
git clean -n
# 未追跡ファイルを削除
git clean -f
# ディレクトリも一緒に削除
git clean -fd
Gitで管理していないファイル(未追跡ファイル)を削除します。テストで作った一時ファイルなどを一括削除したいときに便利です。
必ず-nオプションで確認してから実行しましょう。削除したファイルは復元できません。
コンフリクト(競合)の解決
# コンフリクトが起きているファイルを確認
git status
# マージを中止
git merge --abort
# リベースを中止
git rebase --abort
複数人で同じファイルを編集すると、コンフリクト(競合)が発生することがあります。その場合、該当ファイルを手動で修正してから、再度コミットする必要があります。
コンフリクトが起きたら、まずは落ち着いてgit statusで状況を確認しましょう。
Gitコマンドを使いこなすためのコツ
最後に、Gitをより効率的に使うためのポイントをいくつかご紹介します。
コミットメッセージの書き方
良いコミットメッセージは、後で履歴を見返したときに理解しやすくなります。
良い例:
トップページのレイアウトを修正ログイン機能のバグを修正新規会員登録機能を追加
悪い例:
修正更新変更
具体的に「何を」変更したかを書きましょう。
エイリアス(ショートカット)の設定
よく使うコマンドを短縮できます。
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
これで、git checkoutの代わりにgit coと入力するだけで済むようになります。
.gitignoreファイルの活用
Gitで管理したくないファイル(パスワード設定ファイル、一時ファイルなど)は、.gitignoreファイルに記述しておきましょう。
# .gitignore の例
node_modules/
.env
*.log
.DS_Store
これで、指定したファイルやディレクトリが自動的に無視されます。
コミットの粒度を適切に
1つのコミットには、1つの目的に絞った変更だけを含めましょう。「ログイン機能の追加」と「デザインの変更」は、別々のコミットにするのがベストです。
小さく区切ってコミットすることで、問題が起きたときに特定しやすくなります。
まとめ:まずは基本コマンドから始めよう
Gitコマンドはたくさんありますが、最初からすべてを覚える必要はありません。まずは以下の基本コマンドから始めて、徐々に使えるコマンドを増やしていきましょう。
最低限覚えておきたいコマンド:
git init/git clone– リポジトリの作成・複製git status– 状態確認git add– ファイルをステージングgit commit -m "メッセージ"– 変更を記録git push– リモートに送信git pull– リモートから取得git branch– ブランチ管理git switch/git checkout– ブランチ切り替えgit merge– ブランチ統合git log– 履歴確認
この10個のコマンドが使えれば、基本的な開発作業は問題なく進められます。
Gitは最初は難しく感じるかもしれませんが、実際に使いながら覚えていくのが一番の近道です。わからないことがあったら、git help <コマンド名>でヘルプを見たり、この記事を参考にしたりしながら、少しずつステップアップしていきましょう。
エラーが出ても慌てずに、エラーメッセージをよく読んで対処すれば大丈夫です。Gitを使いこなせるようになれば、開発の効率が格段に上がりますよ!


コメント