システム開発でよく使うGitコマンド完全ガイド(基本~応用まで)

技術

Gitは、システム開発において欠かせないバージョン管理ツールのひとつです。
Linuxほどではないですが、Gitもコマンドの種類が多く、
実務において「必要なコマンドを必要なときにすぐに思い出せるか」は重要です。

特にGit初心者や、しばらくGitから離れていた人は、
「Git操作に不安がある」と感じることがよくあると思います。

本記事では、システム開発でよく使うGitコマンドを「目的別」に整理し、
すぐに使える形でまとめています。
各コマンドの詳細な使い方や、より実践的な運用については個別記事で解説予定です。

また、実際のシステム開発では、Linux環境やWSL環境でGit操作をすることも多くあります。
そのため、Linuxの基本操作もあわせて理解しておくとよりスムーズです。
Linuxの基本操作については以下の記事も参考にしてください。
【保存版】Linux初心者は何から始める?|最初に覚える基本コマンドと学習ロードマップ

よく使うGitコマンドたち

リポジトリの状態を確認する

git status

作業ディレクトリの変更状況を確認するコマンドです。
変更されたファイルの有無、ステージング(git add)済みのファイル、現在作業中のブランチ
といった状況が確認できます。

【よく使う場面】

  • 作業前やコミット前など、作業ディレクトリの変更状況を確認する。

【使用例】

$ git status
On branch main
Changes not staged for commit:
  modified: sample.txt

※ 出力内容は環境によって異なるため、一部のみ抜粋

git log

コミット履歴を確認するコマンドです。

【よく使う場面】

  • 直近の修正内容を確認する
  • バグ発生時の原因の切り分け

【使用例】

$ git log
commit a1b2c3d
Author: user <user@example.com>
Date:   2026-03-20

    最新コミット

※ 出力内容は環境によって異なるため、一部のみ抜粋

リモートリポジトリとの同期

git fetch

リモートリポジトリの最新の変更内容を取得するためのコマンドです。
ローカルのブランチや作業内容には反映されません。

【よく使う場面】

  • リモートリポジトリの最新状態を確認したいとき
  • マージや git pull を行う前に安全に最新の変更内容を取得したいとき

【使用例】

$ git fetch

【補足】
このコマンドは取得のみ行い、マージはされません。
実際に作業ブランチに反映させるには git merge や git pull を使用します。

git pull

リモートリポジトリの最新の変更内容を取得し、作業ブランチに反映するコマンドです。
内部的には、git fetch と git merge をまとめて実行しています。

【よく使う場面】

  • 作業を始めるにあたり、最新の状態を取得するため
  • リモートリポジトリの変更内容を作業ブランチに反映したいとき

【使用例】

$ git pull

git push

ローカルリポジトリでコミットした内容を、リモートリポジトリに反映するコマンドです。

【よく使う場面】

  • ローカルで行った変更をリモートリポジトリに反映したいとき

【使用例】

$ git push

git merge

引数に指定したブランチの変更内容を、現在の作業ブランチに反映するコマンドです。

【よく使う場面】

  • 別のブランチで行った変更内容を作業ブランチに反映したいとき

【使用例】

$ git merge <ブランチ名>

【補足】
現在の作業ブランチと同じ箇所に変更があった場合、コンフリクトが発生することがあります。

ブランチを操作する

git branch

ブランチの作成や削除といった操作を行うコマンドです。

ブランチの一覧表示

現在、存在するローカルブランチの一覧を確認できます。

【使用例】

$ git branch
  main
* feature/test
  feature/test2

※ 現在作業中のブランチに、* が付与されます。

ブランチの作成

ブランチを作成します。

【使用例】

$ git branch <ブランチ名>
ブランチの削除

ブランチを削除します。

【使用例】

$ git branch -d <ブランチ名>

【補足】
マージされていない変更がある場合、本コマンドで削除できません。
マージ未完了のブランチを強制的に削除したい場合は、-D オプションを使います。

$ git branch -D <ブランチ名>

git checkout

ブランチの切り替えやファイルの復元など、複数の操作を行うことができるコマンドです。
Git 2.23以降は、用途別に以下のコマンドの使用が推奨されています。

  • git switch:ブランチの切り替え
  • git restore:ブランチの復元
ブランチの切り替え

引数に指定したブランチに切り替えます。

【使用例】

$ git checkout <ブランチ名>
ブランチを作成し、作成したブランチに切り替え

引数に指定したブランチ名でブランチを作成し、そのブランチに切り替えます。

【使用例】

$ git checkout -b <ブランチ名>
ファイルの復元・編集内容の取消

指定したファイルをローカルブランチの内容で復元します。

【使用例】

$ git checkout <ファイル名>

また、ファイル名の部分を . とすると、
作業中の全ファイルを現在のブランチの最後のコミット状態に戻します。

$ git checkout .

【注意点】
git checkout . を実行すると、作業中の全ファイルが現在のブランチの最後のコミット状態に戻ります。
ステージングしていない変更もすべて消えるため、実行前に内容を確認してください。

git switch

Git2.23以降に導入されたブランチ切り替えに特化したコマンドです。
git checkout のブランチ操作(切り替え・作成 + 切り替え)に対応しています。

ブランチの切り替え

引数に指定したブランチに切り替えます。

【使用例】

$ git switch <ブランチ名>
ブランチを作成し、作成したブランチに切り替え

引数に指定したブランチ名でブランチを作成し、そのブランチに切り替えます。

【使用例】

$ git switch -c <ブランチ名>

git restore

Git 2.23以降に導入されたファイルの復元に特化したコマンドです。
git checkout のファイル復元操作に対応しています。

ファイルの復元・編集内容の取消

指定したファイルを現在のブランチの内容で復元します。

【使用例】

$ git restore <ファイル名>

作業内容を確認・比較する

git diff

作業中ステージング済みの変更コミット間における変更差分を確認するコマンドです。
用途に応じてオプションを使い分けます。

【よく使う場面】

  • 修正内容の確認(意図しない変更内容の検出)
  • コミット前、push前の内容確認

【使用例】

$ git diff
diff --git a/sample.txt b/sample.txt
index e69de29..a1b2c3d 100644
--- a/sample.txt
+++ b/sample.txt
@@ -0,0 +1,2 @@
+追加行1
+追加行2

上記はオプションなしで変更内容を簡単に表示する例です。
作業ブランチ内における、全ファイルの変更内容が確認できます。

オプションを指定することで、状況に応じた変更内容の確認もできます。
それらについては、次の記事で詳しくまとめています。
git diffの使い方|差分確認の基本とシステム開発で使えるオプションまとめ

変更内容を記録する

git add

作業ブランチで変更したファイルを、ステージングエリア(インデックス)に追加するコマンドです。
ステージングエリアに追加されたファイル、次のコミット対象となります。

【使用例】

$ git add <ファイル名>

また、以下のようにディレクトリ名を指定することで、
対象のディレクトリ配下の全ファイルをまとめてステージングエリアに追加できます。

$ git add <ディレクトリ名>

git commit

ステージングエリアに追加された作業内容を、リポジトリに記録するコマンドです。

作業内容のコミット

ステージングされた変更内容をコミットします。

【使用例】

$ git commit

上記のようにオプションなしでコミットを実行した場合、テキストエディタが起動します。
ここでコミットメッセージを入力し、保存・終了することでコミットが完了します。

また、以下のように -m オプションをつけることで、
テキストエディタを起動せずにコミットメッセージを指定してコミットできます。

$ git commit -m "変更内容の説明"
直前のコミットメッセージを修正

直前のコミットメッセージを修正したい場合は、以下のコマンドを実行します。

【使用例】

$ git commit --amend
直前のコミットのAuthor(作者情報)を修正

直前のコミットの作者情報を修正したい場合は、以下のようにオプションを指定します。

【使用例】

$ git commit --amend --author="tanaka taro <tanaka@example.com>"

応用的な操作

git cherry-pick

特定のコミットを、別のブランチに適用するコマンドです。
必要なコミットだけを選択的に取り込みたい場合に使用します。

特定のコミットをマージし、コミットする

指定したコミットの変更内容を、現在のブランチに適用し、新しいコミットとしてリポジトリに記録します。
※ git merge と同様、適用内容次第でcherry-pick 実行時にコンフリクトが発生する場合があります。

【使用例】

$ git cherry-pick <コミットSHA値>
特定のコミットをマージのみ行う

上述と同様に指定したコミットの変更内容を、現在のブランチに適用しますが、
上述とは異なり適用後にコミットは行われません。

適用後のファイルはステージングエリアに追加されるため、
内容を確認・調整した上で手動でコミットしたい場合に使用します。

【使用例】

$ git cherry-pick -n <コミットSHA値>
複数の連続したコミットをマージ

上述で紹介したコマンドは単一のコミットを指定しています。
以下のようにコミットを範囲で指定することで、複数の連続したコミットをまとめて適用できます。

【使用例】

$ git cherry-pick <開始コミットSHA値>^..<終了コミットSHA値>

実務でよくあるGit操作の流れ

システム開発では、以下のような流れでGit操作をすることが多いです。

  1. 最新状態を取得(git pull)
    他メンバーの変更を取り込んでから作業を開始するため
  2. 作業ブランチを作成(git switch -c feature/xxx)
    メンバごと・作業内容ごとに変更を分離するため
  3. ファイルを修正
    機能追加やバグ修正などの開発作業を行う
  4. 変更をステージング(git add xxx)
  5. 変更をコミット(git commit)
  6. リモートへ反映(git push)
    ローカルの変更内容をリモートリポジトリに反映し、他メンバーと共有する
    ※作業環境によっては、commit時点で変更が共有される場合もあります

【注意点】
作業前に git pull を行わないと、作業後にコンフリクトが発生する原因になるため注意が必要です。

実務でよくあるトラブルと対処

実務でよくある問題としては、以下があります。

  • コンフリクト発生
  • push忘れによる変更の未反映
  • 間違った内容をコミット

問題の多くは、Git操作そのものではなく、
運用ルールの理解不足確認不足が原因で発生します。

コンフリクトが発生する(git pull / merge)

他メンバーと同じ箇所を修正している場合、変更が衝突してコンフリクトが発生します。

ファイル内のコンフリクトが発生した箇所に、以下のようなマーカーが表示されます。

<<<<<<< HEAD
現在の変更内容
=======
他ブランチの変更内容
>>>>>>> branch-name

これらを内容を確認しながら手動で修正し、不要なマーカーを削除する必要があります。

対処方法:

  1. 該当ファイルを手動で修正し、コンフリクトを解消する
  2. コンフリクト解消後にgit add → git commit で解消内容をコミットする

変更が反映されない(git pushし忘れ)

ローカルでコミットしただけでは、リモートには反映されません。

対処方法:

  1. git push を実行する

間違った内容をコミットした

誤ったファイルや修正途中の内容をコミットしてしまうことがあります。

対処方法:

  1. git commit –amend で直前のコミットを修正する

まとめ

Gitコマンドは数が多いですが、実務では基本的な流れがある程度決まっています。

本記事のポイントは以下のとおりです。

  • コマンドの役割を理解する
  • 実務での操作の流れを押さえる
  • トラブル時の対処方法を知っておく

これらを意識しておくことで、Git操作で迷う場面を減らすことができます。

参考リンク

Git公式ドキュメント: https://git-scm.com/doc

GitHub の公式ドキュメント: https://docs.github.com/ja

コメント