Linuxコマンド一覧

gitコマンド|変更を記録して履歴に残す

__ __ _ _____
\ \ / /__| |_|_ _|__ _ __ _ __ ___
\ \ /\ / / _ \ '_ \| |/ _ \ '__| '_ ` _ \
\ V V / __/ |_) | | __/ | | | | | |
\_/\_/ \___|_.__/|_|\___|_| |_| |_| |_
 
git を試すためのサンドボックスです。実機のファイルには影響しません。
user@webterm:~/project$
 

git はソースコードの変更を記録するコマンドです。`git status` の読み方、`add` と `commit` の違い、`git log` での履歴の見方を、ブラウザ上のターミナルで打ちながら確認できます。

最終更新: 2026-09-06

書式

git <サブコマン> [オプション]

git は1つのコマンドではなく、サブコマンドの集まりです。 毎日使うのは、この後に出てくる5つだけです。

まず打ってみる

何をするにも git status から始めます。

$ git status
On branch main

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	notes.txt

no changes added to commit (use "git add" and/or "git commit -a")

読み取れることは3つです。

見出し意味
On branch mainいま main で作業している
Changes not staged for commit直したが、まだ記録の対象に選んでいない
Untracked filesgit がまだ一度も見ていないファイル

短く見たいときは -s を付けます。

$ git status -s
 M README.md
?? notes.txt

M は変更、?? は未追跡です。

変更の中身を見る

どこを直したのかは git diff で分かります。

$ git diff
diff --git a/README.md b/README.md
index 4f908a3..3b65e7d 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
 # project
 
 A small example project.
+Run npm start to begin.

+ が付いた行が、追加した行です。 記録する前に必ずこれを見てください。 消したつもりのないものが混ざっていないか、ここでしか気づけません。

記録する

記録は2段階です。 まず、記録したいファイルを選びます。

$ git add README.md
$ git status
On branch main

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	notes.txt

README.mdChanges to be committed(ステージング)に移りました。 選んだものだけを、1つの記録として確定します。

$ git commit -m "Explain how to start the app"
[main 212b4a4] Explain how to start the app
 1 file changed, 1 insertion(+)

212b4a4 はこのコミットに付いた名前で、実行するたびに変わります。 notes.txt は選んでいないので、記録には入っていません。

$ git status -s
?? notes.txt

この「選んでから確定する」2段階が git の中心です。 1回の作業で複数のことを直してしまっても、関係するファイルだけを選んで、意味のまとまりごとに記録を分けられます。

履歴を見る

$ git log --oneline
212b4a4 (HEAD -> main) Explain how to start the app
6606c5f add a description
77860e9 first commit

新しいものが上です。 --oneline を付けないと、作者と日時を含む詳しい形式になります。

毎日使うサブコマンド

サブコマンド何をするか
git statusいまどうなっているかを見る
git diff直した中身を見る
git add <ファイル>記録するものを選ぶ
git commit -m "..."選んだものを記録する
git log --oneline履歴を見る
git switch -c <名前>新しいブランチを作って移る
git restore <ファイル>直した内容を捨てて元に戻す

実務での使いどころ

git は、戻れるようにしてから進むためのコマンドです。

場面打ち方
作業を始める前に状態を確かめるgit status
何を直したか思い出すgit diff
キリのいいところで記録するgit add <ファイル>git commit -m "..."
直前のメッセージを書き直すgit commit --amend -m "..."
変更を捨てるgit restore <ファイル>

つまずきやすいところ

git add しないと記録されません。 ファイルを保存しただけでは履歴に残りません。 git commit の直前に git status を見て、Changes to be committed に入っているかを確かめてください。

git add . は打つ前に git status を。 . はいまいる場所より下の全部です。 秘密の鍵やビルドの成果物まで入ってしまうことがあるので、まず何が入るのかを見てください。

メッセージは後から読む人のために書きます。 fixupdate だけでは、履歴を見返したときに何をしたのか分かりません。 「何をしたか」ではなく「なぜそうしたか」を1行で書くと、後から効いてきます。

git は大きな道具です。 このページで扱ったのは、毎日使う入口の部分だけです。 ブランチをまたいだ作業や、取り消し方の使い分けは、下のチュートリアルとコースで順に扱っています。

手を動かして覚える

webterm.appこのサイト

learn.webterm.app別のサイト

>_WEBTERM LEARN

WebTerm Learn|1つのコマンドから、使える状態へ

コマンドは単体で覚えるより、実際の作業の流れの中で使うほうが身につきます。順番に積み上げていくコースがあります。

コースを見る

関連するコマンド

vim / ls / diff / less

よくある質問

git と GitHub の違いは何ですか?
`git` は手元で履歴を記録する道具、GitHub はその履歴を置いて共有するサービスです。GitHub を使わなくても git だけで履歴は残せます。
add と commit はどう違いますか?
`add` は「次の記録に含めるもの」を選ぶ操作、`commit` はそれを1つの記録として確定する操作です。間にステージングという置き場があるおかげで、変更の一部だけを記録できます。
コミットメッセージを間違えました。
まだ共有していなければ `git commit --amend -m '新しいメッセージ'` で書き直せます。すでに push したものを書き換えると、他の人の履歴と食い違うので注意してください。
変更を捨ててやり直したいです。
`git restore <ファイル>` で、最後のコミットの状態に戻せます。捨てた変更は戻らないので、迷ったら先に `git diff` で中身を見てください。
git push が upstream について何か言ってきます。
そのブランチの送り先がまだ決まっていない、という意味です。メッセージに出ている `git push --set-upstream origin <ブランチ>` をそのまま打てば、以降は `git push` だけで済みます。