git init / git add / git commit の 3コマンド。git restore / git reset / git reflog)まで最短で身につけます。
Gitは多機能ですが、日常の99%は「フォルダをGit化して」「変更をステージに載せ」「履歴として確定する」だけです。
つまり init → add → commit の3ステップ。push/pull/branchは後からでOK。最初は 正しく記録→戻せる を最優先にしましょう。
# Gitのユーザー名とメールを設定(コミット作者として残ります)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
# 表示を少し優しく
git config --global init.defaultBranch main
git config --global color.ui auto
git config --global pull.rebase false
[作業ツリー] --(add)--> [ステージ] --(commit)--> [履歴(HEAD)]
編集中 提出物ボックス 確定(巻き戻し可能)
mkdir hello-git && cd hello-git
git init
echo "<h1>Hello Git</h1>" > index.html
これで、.git フォルダができ、プロジェクトが「記録可能」になりました。
git add index.html
# まとめて載せるなら
git add -A # or git add .
「この変更をコミット候補に入れる」という意思表示。git status で現在の状態を確認できます。
git commit -m "初めてのコミット: index.htmlを追加"
これで 戻せる履歴 が1つできました。git log --oneline で確認してみましょう。
# ファイルを編集 → 変更を確認
git status
# 変更済みをステージへ
git add -A
# メッセージを付けて確定
git commit -m "〜を修正/追加/削除"
この3行が“日常”。ブランチやpushを使い始めても、核はずっと同じです。
タイトルは「3コマンド」ですが、公開したい人向けに最短のpushも載せます。
# GitHubで空リポジトリを作成(例: yourname/hello-git)
git branch -M main
git remote add origin https://github.com/yourname/hello-git.git
git push -u origin main
-u により次回から git push だけでOKになります。
怖いのは「知らない」こと。戻し方を知っていれば、安心して編集できます。
# ステージから外して編集に戻す
git restore --staged path/to/file
# すべて外す
git restore --staged .
# 作業ツリーの変更を捨てる(最新版に戻す)
git restore path/to/file
# 全部捨てる(未保存の編集は消えます)
git restore .
# メッセージやファイルを上書き(まだpushしていない前提)
# 1) 直す → 2) add → 3) amend
git add -A
git commit --amend -m "コミットを修正"
# 作業ツリー&ステージも含めて完全に戻す(破壊的・未push前提)
git reset --hard HEAD^
# もう一段戻すなら HEAD^^ (^ は1つ前)
# ほぼ最後の砦。移動履歴(reflog)からコミットを発見して戻る
git reflog
# 出てきたハッシュ(例 abc1234)へ戻す
git reset --hard abc1234
reflogはローカルの移動履歴。push済みのものはリモートの事情も絡むので注意。
ステージは「どの変更をコミットに含めるか」を選ぶ場所。ファイル単位だけでなく、行単位でも選べます。
# 対話的に、差分のhunkごとに add する
git add -p
# Vimなどで差分を開いてステージ編集(上級者)
git add -e
雑に全部コミットし続けると、後で履歴を読めません。論理的な単位で小さく積むのがコツ。
# 直近の変更を読む
git log --oneline --graph --decorate -n 10
git show HEAD # 最新コミットの内容
git diff # 未ステージの差分
git diff --staged # ステージ済みの差分
最初に覚えるなら switch -c と merge だけで十分。
# ブランチを作って切り替え(新機能を隔離)
git switch -c feature/cool
# 変更をコミットしたら main に取り込む(fast-forward想定)
git switch main
git merge feature/cool
# 使い終えたら消す
git branch -d feature/cool
# OS / エディタ
.DS_Store
Thumbs.db
.vscode/
# 依存物(例:node)
node_modules/
dist/
.env
最初に置いておくと、ゴミが履歴に混ざりません。
「意味のある最小単位」。同じファイルでも機能A/Bは分けてコミットすると、後で戻しやすくなります。
OK。チーム文化に合わせるのが大事。先頭に fix: / feat: などのプレフィックスを付けると検索性が上がります。
公開履歴を書き換えるのは慎重に。新コミットで修正するのが基本。どうしても消すならチーム同意の上 git revert を使いましょう。
# 3コマンド
git init
git add -A
git commit -m "msg"
# よく使う確認
git status
git log --oneline
git diff / git diff --staged
# 戻す系
git restore --staged .
git restore .
git commit --amend
git reset --hard HEAD^
git reflog
init → add → commit の3手だけ。restore/reset/reflog)を“おまもり”として覚えれば、怖くありません。慣れてきたら push / branch を追加しましょう。