開発

Gitの基本的なコマンド:最初に覚える操作まとめ

Git・Gitea入門シリーズの第3回です。日常的によく使うGitコマンドを、状態確認、変更の記録、ブランチ操作、GitHubやGiteaとの同期に分けて整理します。

この記事は「Git・Gitea入門」シリーズの第3回です。全体像は 第1回:Git、Giteaとは で、運用前のルールは 第2回:Git、Giteaを始める前に決めるべきルール で整理しています。

GitやGiteaを使うときは、すべてのコマンドを最初から覚える必要はありません。

まずは、日常的によく使うコマンドから覚えるのが現実的です。

第1回ではGit・GitHub・Giteaの違いを、第2回では使い始める前に決めておきたいルールを扱いました。

今回は、そこで決めたルールを実際の作業に移すために、よく使うGitコマンドを整理します。

コマンド・オプション・引数とは

Gitの説明では、よく「コマンド」「オプション」「引数」という言葉が出てきます。

最初は少し分かりにくいですが、ざっくり分けると次のようになります。

コマンド:
Gitに対して「何をするか」を指示するもの

オプション:
コマンドの動作を少し変えるための指定

引数:
コマンドの対象を指定するもの

たとえば、次のコマンドを見てみます。

git status --short

この場合は、次のように分けられます。

git:
Gitを使うという指定

status:
状態を確認するコマンド

--short:
短く表示するためのオプション

別の例です。

git add README.md

この場合は、次のようになります。

git:
Gitを使うという指定

add:
変更をステージングするコマンド

README.md:
対象となるファイル名

つまり、 README.md はオプションではなく、対象を指定する「引数」です。

また、オプションには長い書き方と短い書き方があります。

git status --short

git status -s

この2つは、どちらも短く状態を表示する指定です。

一般的には、次のような違いがあります。

--short:
意味が分かりやすい長いオプション

-s:
短く書ける省略形のオプション

最初は、意味が分かりやすい --short のような長いオプションで覚えると理解しやすいです。
慣れてきたら、 -s のような短いオプションを使うと効率的です。

なお、この記事では初心者向けに、厳密には「引数」や「指定」にあたるものも、実用上分かりやすいように「オプション・指定」として表にまとめています。

Gitコマンドは大きく分けて考える

Gitのコマンドは数が多く見えますが、最初は次の4つに分けて考えると分かりやすいです。

1. 状態を確認する
2. 変更を記録する
3. 作業を分ける・整理する
4. GitHubやGiteaと同期する

Gitは、ファイルの変更履歴を管理する道具です。
そのため、コマンドも基本的には「今の状態を見る」「変更を記録する」「履歴を整理する」「他の場所と共有する」という流れで使います。

まず覚えたい基本の流れ

最初に覚えるべき流れは、次のとおりです。

git status
git add .
git commit -m "変更内容を書く"
git push

意味としては、次のようになります。

1. git status で状態を確認する
2. git add で変更をコミット対象にする
3. git commit で変更を履歴として保存する
4. git push でGitHubやGiteaに送る

この流れが、Gitの日常的な基本操作です。

ただし、何も考えずに毎回 git add . を使うと、不要なファイルまで含めてしまうことがあります。
特に、設定ファイルや一時ファイルが混ざっていないかは注意が必要です。

1. git status

役割

現在の状態を確認するコマンドです。

作業中のファイル、ステージング済みのファイル、まだGit管理されていないファイルなどを確認できます。

git status

Gitを使うときは、まず git status を見る習慣をつけると安全です。

よく使うオプション

git status --short

または、

git status -s

短い形式で状態を表示できます。

通常表示が長くて見づらい場合に便利です。

オプション・指定の一覧
オプション 意味
--short 状態を短く表示する
-s --short と同じ
--branch 現在のブランチ情報も表示する
-b --branch と同じ
--ignored .gitignore で無視されているファイルも表示する

2. git add

役割

変更したファイルを、次のコミットに含める準備をするコマンドです。

この「コミットに含める準備をする場所」を、ステージングエリアといいます。

git add ファイル名

たとえば、 README.md だけを追加する場合は次のようにします。

git add README.md

よく使う指定方法

現在のフォルダ以下の変更をまとめて追加する場合は、次のようにします。

git add .

すべての変更を追加する場合は、次のようにします。

git add -A

初心者のうちは、まず git status で対象ファイルを確認してから git add する方が安全です。

オプション・指定の一覧
オプション・指定 意味
ファイル名 指定したファイルだけをステージングする
. 現在のフォルダ以下の変更をステージングする
-A 削除を含むすべての変更をステージングする
--all -A と同じ
-p 変更箇所を確認しながら部分的にステージングする
--patch -p と同じ
-n 実際には追加せず、追加対象だけ確認する
--dry-run -n と同じ

3. git commit

役割

ステージングした変更を、履歴として保存するコマンドです。

この保存単位を「コミット」といいます。

git commit -m "変更内容を書く"

例:

git commit -m "READMEに初期設定手順を追加"

コミットメッセージは、後から見たときに何を変更したか分かるように書きます。

よくない例

git commit -m "修正"
git commit -m "作業"
git commit -m "いろいろ変更"

これでは、後から見ても内容が分かりません。

よい例

git commit -m "問い合わせフォームへのリンクを追加"
git commit -m "ヘッダーの表示崩れを修正"
git commit -m "READMEにGitの基本手順を追加"

コミットメッセージは、未来の自分への引き継ぎメモでもあります。
雑に書くと、後で自分が困ります。過去の自分は意外と他人です。

オプション・指定の一覧
オプション 意味
-m "メッセージ" コミットメッセージを指定する
--message "メッセージ" -m と同じ
--amend 直前のコミットを修正する
--no-edit --amend 時などに、前回のコミットメッセージをそのまま使う
-a 追跡済みファイルの変更を自動でステージングしてコミットする
--all -a と同じ

4. git log

役割

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

git log

過去にどのような変更が行われたかを確認できます。

よく使うオプション

1行ずつ履歴を表示する場合は、次のようにします。

git log --oneline

ブランチの分岐も含めて見たい場合は、次のようにします。

git log --oneline --graph --decorate --all

最初は少し見慣れない表示ですが、ブランチの流れを確認するときに便利です。

オプション・指定の一覧
オプション 意味
--oneline 1コミットを1行で表示する
--graph ブランチの分岐を図のように表示する
--decorate ブランチ名やタグ名も表示する
--all すべてのブランチを対象に表示する
-n 数字 表示するコミット数を指定する
--stat 変更されたファイル数や行数を表示する
-- ファイル名 指定したファイルに関する履歴だけ表示する

5. git diff

役割

変更内容の差分を確認するコマンドです。

git diff

まだステージングしていない変更内容を確認できます。

ステージング済みの差分を見る

git diff --staged

または、

git diff --cached

コミットする前に git diff を確認すると、意図しない変更を含める事故を防ぎやすくなります。

オプション・指定の一覧
オプション・指定 意味
--staged ステージング済みの差分を表示する
--cached --staged と同じ
--name-only 変更されたファイル名だけ表示する
--stat 変更行数などの概要を表示する
ファイル名 指定したファイルの差分だけ表示する
ブランチ名..ブランチ名 ブランチ間の差分を表示する

6. git branch

役割

ブランチを確認・作成・削除するコマンドです。

ブランチとは、作業の流れを分ける仕組みです。

現在のブランチ一覧を確認する場合は、次のようにします。

git branch

新しいブランチを作成する場合は、次のようにします。

git branch ブランチ名

例:

git branch feature/add-contact-page

リモートブランチも含めて確認する

git branch -a

GitHubやGitea上にあるブランチも含めて確認できます。

オプション・指定の一覧
オプション・指定 意味
ブランチ名 新しいブランチを作成する
-a ローカルとリモートのブランチをすべて表示する
--all -a と同じ
-r リモートブランチだけ表示する
--remote -r と同じ
-d ブランチ名 マージ済みブランチを削除する
-D ブランチ名 未マージでも強制削除する
-m 新しい名前 現在のブランチ名を変更する

7. git switch

役割

ブランチを切り替えるコマンドです。

git switch ブランチ名

例:

git switch main

新しいブランチを作成して切り替える

git switch -c ブランチ名

例:

git switch -c feature/add-contact-page

このコマンドは、新しい作業を始めるときによく使います。

以前は git checkout がよく使われていましたが、現在はブランチ切り替えには git switch を使う方が分かりやすいです。

オプション・指定の一覧
オプション・指定 意味
ブランチ名 指定したブランチに切り替える
-c ブランチ名 新しいブランチを作成して切り替える
--create ブランチ名 -c と同じ
-C ブランチ名 同名ブランチがあっても作り直して切り替える
- 直前にいたブランチへ戻る

8. git checkout

役割

ブランチの切り替えや、ファイルの復元に使われるコマンドです。

git checkout ブランチ名

また、新しいブランチを作成して切り替える場合は、次のようにします。

git checkout -b ブランチ名

ただし、現在は次のように使い分ける方が分かりやすいです。

ブランチ切り替え:git switch
ファイルの復元:git restore

git checkout は便利ですが、役割が広いため初心者には少し分かりにくいコマンドです。

オプション・指定の一覧
オプション・指定 意味
ブランチ名 指定したブランチに切り替える
-b ブランチ名 新しいブランチを作成して切り替える
-- ファイル名 指定ファイルの変更を取り消す
- 直前にいたブランチへ戻る

9. git restore

役割

作業中の変更を取り消すコマンドです。

git restore ファイル名

例:

git restore README.md

この場合、 README.md に加えた未コミットの変更を取り消します。

ステージングを取り消す

git restore --staged ファイル名

例:

git restore --staged README.md

これは、 git add した状態を取り消すコマンドです。
ファイルの変更内容自体は残ります。

注意点

git restore で作業中の変更を取り消すと、基本的には元に戻せません。
実行前に git diff で内容を確認することをおすすめします。

オプション・指定の一覧
オプション・指定 意味
ファイル名 指定したファイルの作業中の変更を取り消す
. 現在のフォルダ以下の変更をまとめて取り消す
--staged ステージングを取り消す
--source コミット 指定したコミットの状態から復元する

10. git reset

役割

コミットやステージングの状態を戻すコマンドです。

たとえば、ステージングを取り消す場合は次のようにします。

git reset ファイル名

また、直前のコミットを取り消したい場合は、次のような指定があります。

git reset --soft HEAD~1

これは、直前のコミットを取り消しますが、変更内容はステージングされた状態で残します。

git reset --mixed HEAD~1

これは、直前のコミットを取り消し、変更内容は作業中の状態として残します。

git reset --hard HEAD~1

これは、直前のコミットと変更内容をまとめて取り消します。

注意点

git reset --hard は強力なコマンドです。
変更内容が消える可能性があります。

初心者のうちは、意味が分からないまま --hard を使わない方が安全です。

オプション・指定の一覧
オプション・指定 意味
ファイル名 指定ファイルのステージングを取り消す
--soft コミットだけ取り消し、変更内容はステージングに残す
--mixed コミットを取り消し、変更内容は作業ツリーに残す
--hard コミットと変更内容をまとめて取り消す
HEAD~1 1つ前のコミットを指す
HEAD~2 2つ前のコミットを指す

11. git clone

役割

GitHubやGiteaなどにあるリポジトリを、自分のPCに複製するコマンドです。

git clone URL

例:

git clone https://github.com/example/example-repository.git

GitHubやGiteaで管理されているプロジェクトをローカル環境に持ってくるときに使います。

フォルダ名を指定してcloneする

git clone URL フォルダ名

例:

git clone https://github.com/example/example-repository.git my-project

この場合、 my-project というフォルダ名で複製されます。

オプション・指定の一覧
オプション・指定 意味
URL 複製元のリポジトリURLを指定する
フォルダ名 複製先のフォルダ名を指定する
--depth 数字 履歴を指定した深さだけ取得する
--branch ブランチ名 指定したブランチをcloneする
-b ブランチ名 --branch と同じ

12. git remote

役割

リモートリポジトリの接続先を確認・変更するコマンドです。

リモートリポジトリとは、自分のPCではなく、GitHubやGiteaなどにあるリポジトリのことです。

現在の接続先を確認する場合は、次のようにします。

git remote -v

リモートを追加する

git remote add origin URL

例:

git remote add origin https://github.com/example/example-repository.git

リモートURLを変更する

git remote set-url origin URL

GitHubからGiteaへ接続先を変える場合などに使います。

オプション・指定の一覧
オプション・指定 意味
-v リモート名とURLを表示する
add 名前 URL リモート接続先を追加する
set-url 名前 URL 登録済みリモートのURLを変更する
remove 名前 登録済みリモートを削除する
rename 旧名 新名 リモート名を変更する

13. git fetch

役割

リモートリポジトリの最新情報を取得するコマンドです。

git fetch

git fetch は、リモートの情報を取得しますが、自分の作業ブランチには直接反映しません。

つまり、「確認だけする」イメージです。

不要になったリモートブランチ情報も整理する

git fetch --prune

リモート側で削除されたブランチ情報を、ローカル側でも整理できます。

オプション・指定の一覧
オプション・指定 意味
origin originという名前のリモートから取得する
--all すべてのリモートから取得する
--prune リモートで削除済みのブランチ情報を整理する
-p --prune と同じ

14. git pull

役割

リモートリポジトリの変更を取得して、自分の作業ブランチに反映するコマンドです。

git pull

git pull は、ざっくりいうと次の処理をまとめて行います。

git fetch
+
git merge

つまり、リモートの変更を取ってきて、自分のブランチに取り込みます。

注意点

自分の作業中の変更がある状態で git pull すると、衝突することがあります。

作業前に最新の状態にしたい場合は、先に git status を確認してから git pull すると安全です。

オプション・指定の一覧
オプション・指定 意味
origin ブランチ名 指定したリモートブランチから取得して取り込む
--rebase mergeではなくrebaseで取り込む
--ff-only fast-forwardできる場合だけ取り込む
--no-rebase rebaseではなくmergeで取り込む

15. git push

役割

ローカルで作成したコミットを、GitHubやGiteaなどのリモートリポジトリに送るコマンドです。

git push

ブランチ名を指定して送る場合は、次のようにします。

git push origin ブランチ名

例:

git push origin main

初回pushでよく使う指定

新しいブランチを初めてリモートに送る場合は、次のようにします。

git push -u origin ブランチ名

例:

git push -u origin feature/add-contact-page

-u を付けると、次回以降は git push だけで同じブランチに送れるようになります。

注意点

次のコマンドは慎重に扱う必要があります。

git push --force

--force は、リモートの履歴を強制的に書き換える可能性があります。
共有ブランチでは原則として使わない方が安全です。

オプション・指定の一覧
オプション・指定 意味
origin ブランチ名 指定したリモートブランチへpushする
-u 上流ブランチを設定する
--set-upstream -u と同じ
--force リモート履歴を強制的に書き換える
--force-with-lease リモートの状態を確認したうえで強制pushする
--tags タグをまとめてpushする

16. git merge

役割

別のブランチの変更を、現在のブランチに取り込むコマンドです。

git merge ブランチ名

例:

git merge feature/add-contact-page

この場合、現在いるブランチに feature/add-contact-page の変更を取り込みます。

コンフリクトした場合

同じファイルの同じ箇所を複数のブランチで変更していると、コンフリクトが起きることがあります。

コンフリクトとは、Gitが自動で変更内容を判断できない状態です。

マージを中止したい場合は、次のようにします。

git merge --abort
オプション・指定の一覧
オプション・指定 意味
ブランチ名 指定ブランチの変更を取り込む
--abort コンフリクト中のmergeを中止する
--no-ff fast-forwardできる場合でもマージコミットを作る
--ff-only fast-forwardできる場合だけmergeする

17. git rebase

役割

コミット履歴を付け替えるコマンドです。

git rebase ブランチ名

たとえば、作業ブランチを最新の main の上に乗せ直す場合などに使います。

注意点

git rebase は履歴をきれいにできる一方で、扱いを間違えると混乱しやすいコマンドです。

特に、すでに他の人と共有しているブランチで安易に使うと、履歴の食い違いが起きることがあります。

初心者のうちは、まず merge を理解してから rebase を使う方が安全です。

オプション・指定の一覧
オプション・指定 意味
ブランチ名 指定ブランチの先端に履歴を付け替える
-i 対話形式でコミット履歴を整理する
--interactive -i と同じ
--abort rebaseを中止する
--continue コンフリクト解消後にrebaseを続ける

18. git stash

役割

作業中の変更を一時的に退避するコマンドです。

git stash

たとえば、作業途中だけれど、急いで別ブランチに切り替えたい場合に使います。

退避した内容を確認する

git stash list

退避した内容を戻す

git stash pop

pop は、退避した内容を戻し、stashの一覧から削除します。

一覧に残したまま戻したい場合は、次のようにします。

git stash apply

stash は便利ですが、何を退避したか忘れやすいです。
長期間の保管場所として使うより、一時避難場所として使う方が向いています。

オプション・指定の一覧
オプション・指定 意味
list 退避した作業の一覧を表示する
pop 最新の退避を戻し、一覧から削除する
apply 最新の退避を戻すが、一覧には残す
drop 指定した退避を削除する
clear 退避をすべて削除する
push -m "メモ" メモ付きで退避する

19. git tag

役割

特定のコミットに目印を付けるコマンドです。

主に、バージョン番号を付けるときに使います。

git tag

タグ一覧を確認できます。

タグを作成する

git tag v1.0.0

注釈付きタグを作成する

git tag -a v1.0.0 -m "version 1.0.0"

タグをリモートに送る

git push origin v1.0.0

すべてのタグを送る場合は、次のようにします。

git push origin --tags

アプリやツールをリリースする場合、タグを付けておくと後からバージョンを追いやすくなります。

オプション・指定の一覧
オプション・指定 意味
タグ名 指定した名前のタグを作成する
-a タグ名 注釈付きタグを作成する
-m "メッセージ" タグのメッセージを指定する
-d タグ名 ローカルのタグを削除する
push origin タグ名 指定したタグをリモートへ送る
push origin --tags すべてのタグをリモートへ送る

20. git rm

役割

Git管理下のファイルを削除するコマンドです。

git rm ファイル名

ファイルを削除し、その削除をGitの変更として記録します。

ファイルは残してGit管理から外す

git rm --cached ファイル名

例:

git rm --cached .env

この場合、 .env ファイル自体は残りますが、Gitの管理対象から外れます。

ただし、すでにコミット済みの機密情報が履歴から完全に消えるわけではありません。
APIキーやパスワードは、最初からコミットしないことが重要です。

オプション・指定の一覧
オプション・指定 意味
ファイル名 指定したファイルを削除し、Gitにも削除として記録する
--cached ファイル自体は残し、Git管理から外す
-r フォルダごと削除する
-f 強制的に削除する

21. git mv

役割

Git管理下のファイル名変更や移動を行うコマンドです。

git mv 旧ファイル名 新ファイル名

例:

git mv old-name.md new-name.md

ファイルを別フォルダに移動する場合は、次のようにします。

git mv old-folder/file.md new-folder/file.md
オプション・指定の一覧
オプション・指定 意味
旧ファイル名 新ファイル名 ファイル名を変更する
旧パス 新パス ファイルを移動する
-f 移動先に同名ファイルがあっても強制的に実行する

22. git init

役割

現在のフォルダをGitリポジトリとして初期化するコマンドです。

git init

新しくGit管理を始めるときに使います。

ただし、GitHubやGitea上にすでにリポジトリがある場合は、 git clone から始めることが多いです。

オプション・指定の一覧
オプション・指定 意味
フォルダ名 指定したフォルダを作成してGitリポジトリ化する
--initial-branch ブランチ名 初期ブランチ名を指定する
-b ブランチ名 --initial-branch と同じ

23. git config

役割

Gitの設定を確認・変更するコマンドです。

設定一覧を確認する場合は、次のようにします。

git config --list

ユーザー名を設定する場合は、次のようにします。

git config --global user.name "名前"

メールアドレスを設定する場合は、次のようにします。

git config --global user.email "メールアドレス"

初期ブランチ名を main にする場合は、次のようにします。

git config --global init.defaultBranch main

最初の環境設定で使うことが多いコマンドです。

オプション・指定の一覧
オプション・指定 意味
--list 設定一覧を表示する
--global PC全体のGit設定を対象にする
--local 現在のリポジトリだけの設定を対象にする
user.name Gitで使うユーザー名を設定する
user.email Gitで使うメールアドレスを設定する
init.defaultBranch 新規作成時の初期ブランチ名を設定する

24. git clean

役割

Git管理されていないファイルを削除するコマンドです。

まず、削除対象を確認します。

git clean -n

実際に削除する場合は、次のようにします。

git clean -f

フォルダも含めて削除する場合は、次のようにします。

git clean -fd

注意点

git clean は、Git管理外のファイルを削除します。
削除されたファイルは、Gitの履歴から戻せない場合があります。

実行前に必ず git clean -n で確認する方が安全です。

オプション・指定の一覧
オプション 意味
-n 削除対象を表示するだけで、実際には削除しない
--dry-run -n と同じ
-f Git管理外ファイルを削除する
-d フォルダも削除対象に含める
-x .gitignore で無視されているファイルも削除対象に含める

初心者が最初に覚えるならこの7つ

ここまで多くのコマンドを紹介しましたが、最初からすべて覚える必要はありません。

まずは、次の7つを覚えるだけでも十分です。

1. git status
2. git add
3. git commit
4. git log
5. git diff
6. git pull
7. git push

これに慣れてきたら、次にブランチ操作を覚えるとよいです。

8. git branch
9. git switch
10. git merge

さらに必要になったら、取り消し系や整理系のコマンドを覚えていきます。

11. git restore
12. git reset
13. git stash

Gitは、一度に全部覚える道具ではありません。
必要になったタイミングで少しずつ増やしていく方が、結果的に定着しやすいです。

基本的な作業例

最後に、よくある作業の流れを整理します。

作業前に状態を確認する

git status

最新の状態を取得する

git pull

新しい作業ブランチを作る

git switch -c feature/add-contact-page

ファイルを編集する

ここはGitコマンドではなく、エディタでファイルを編集します。

変更内容を確認する

git diff

変更をステージングする

git add .

コミットする

git commit -m "問い合わせページへのリンクを追加"

リモートに送る

git push -u origin feature/add-contact-page

この流れを理解しておくと、GitHubやGiteaでの作業がかなり分かりやすくなります。

よくある注意点

Gitを使い始めたばかりの頃は、次の点に注意すると事故を減らせます。

- 作業前に git status を見る
- コミット前に git diff を見る
- git add . の前に不要なファイルがないか確認する
- コミットメッセージは具体的に書く
- mainブランチで大きな作業をしない
- よく分からない状態で --hard や --force を使わない
- エラーが出たら、まず表示内容を読む

特に、次のコマンドは影響が大きいです。

git reset --hard
git push --force
git clean -f

これらは便利ですが、使い方を間違えると変更内容が消えたり、他の人の作業に影響したりします。

初心者のうちは、実行前に意味を確認することをおすすめします。

GitHubやGiteaとの関係

この記事で紹介した多くのコマンドは、Gitそのもののコマンドです。

たとえば、次のコマンドはGitのコマンドです。

git status
git add
git commit
git log
git branch
git push
git pull

一方で、GitHubやGiteaは、Gitリポジトリを共有・管理するための場所です。

そのため、基本的なGitコマンドは、GitHubを使う場合でもGiteaを使う場合でも共通して使えます。

違いが出やすいのは、次のような部分です。

- リポジトリの作成画面
- ユーザーや権限の管理
- IssueやPull Requestの画面
- レビューの流れ
- サーバーや組織内ルール

つまり、Gitの基本操作を覚えておくと、GitHubでもGiteaでも応用しやすくなります。

まとめ

Gitのコマンドは多く見えますが、最初に覚えるべきものは限られています。

まずは、次の流れを理解することが大切です。

git status
git add .
git commit -m "変更内容を書く"
git push

そして、作業前には git status、コミット前には git diff を確認する習慣をつけると、ミスを減らせます。

Gitは、単なるコマンド集ではありません。
変更履歴を残し、作業を分け、必要に応じてGitHubやGiteaと共有するための仕組みです。

最初から高度なコマンドを覚える必要はありません。

まずは、

見る
記録する
共有する

この3つを意識すると、Gitの基本操作はかなり理解しやすくなります。

このシリーズでは、Git・Giteaの全体像、使い始める前のルール、基本コマンドを順番に整理しました。

実際に使いながら少しずつ慣れていけば十分です。
Gitは最初だけ少し難しく見えますが、慣れると「変更前に戻れる保険」としてかなり頼れる道具になります。

必要に応じて、用語を確認したいときは第1回へ、運用ルールを見直したいときは第2回へ戻ってください。

シリーズ記事:
第一回:Git、Giteaとは
第二回:Git、Giteaを始める前に決めるべきルール