ニッチワークス合同会社

← ブログ一覧

git 使い方まとめ:こういう時にこれを使う

2026-03-10

#git


まず頭に入れる:git の基本構造

ローカルに3つの場所(作業ディレクトリ・ステージ・ローカルリポジトリ)があり、そこにリモートを加えた4か所でファイルが管理される。コマンドが何をやっているかは、これを基準に考えると整理される。

作業ディレクトリ git add ステージ git commit ローカル リポジトリ git push リモート git pull

場所 意味
作業ディレクトリ 実際にファイルを編集している場所
ステージ 「次のコミットに含める変更」を一時的に置く場所
ローカルリポジトリ 自分のPCに保存された履歴
リモート GitHubなどのサーバー上の履歴

シーン別コマンド一覧

毎日使う

やりたいこと コマンド
今の状態を確認 git status
変更をステージに上げる git add ファイル名 または git add .
コミットする git commit -m "メッセージ"
リモートに送る git push
リモートから取り込む git pull

addcommit は別操作。「何をコミットするか選ぶ」のが add、「確定させる」のが commit


確認したい

やりたいこと コマンド
履歴を見る git log --oneline
変更の差分を見る(ステージ前) git diff
変更の差分を見る(ステージ後) git diff --staged
誰がいつ書いたか調べる git blame ファイル名

ブランチ操作

やりたいこと コマンド
ブランチを作って移動 git switch -c ブランチ名
ブランチを切り替え git switch ブランチ名
ブランチ一覧 git branch
マージ git merge ブランチ名

やり直したい

やりたいこと コマンド
直前のコミットを取り消す(変更をステージに残す) git reset --soft HEAD^
直前のコミットを取り消す(変更を作業ディレクトリに残す) git reset --mixed HEAD^(オプションなしと同じ)
直前のコミットを取り消す(変更ごと全部消す) git reset --hard HEAD^ ※元に戻せない
git add を取り消す git restore --staged ファイル名
ファイルを変更前に戻す git restore ファイル名 ※元に戻せない
push済みの変更を安全に打ち消す git revert HEAD(直前)/ git revert コミットハッシュ

その他

やりたいこと コマンド
作業を一時退避 git stash
退避した作業を戻す git stash pop
特定コミットだけ取り込む git cherry-pick コミットハッシュ

よく混乱するやつ

reset と revert の違い

reset コミット履歴を削除する Before A B C HEAD ↓ git reset HEAD^ After A B HEAD C 消える revert 打ち消しコミットを追加する Before A B C HEAD ↓ git revert HEAD After A B C C' HEAD 打ち消し

  • reset はコミット履歴を削除する。ローカルでのやり直し向き。
  • revert は打ち消すコミットを追加する。リモートにpush済みのコミットを修正するときはこちら。

push済みのコミットを reset して force push するのは基本NG。

--soft / --mixed / --hard の使い分けについては別記事で詳しく説明する予定。


merge と rebase の違い

merge ブランチの分岐・合流を履歴に残す main feature A B M HEAD C D 分岐と合流の履歴がそのまま残る rebase featureのコミットをmainの先に付け替える main A B C' D' HEAD C', D' = featureの変更 (Bの上に付け替え) 一直線の履歴になる(log が読みやすい)

  • merge はブランチの分岐と合流をそのまま履歴に残す。チーム開発で正確な履歴が必要な場合に使う。
  • rebase はfeatureブランチのコミットをmainの先頭に付け替えて一直線の履歴にする。個人ブランチの整理向き。

checkout と switch / restore の違い

git checkout はもともとブランチ切り替えとファイル復元の両方をやるコマンドだったが、Git 2.23 で役割が分割された。

役割
git checkout -b ブランチ名 git switch -c ブランチ名 ブランチを作って移動
git checkout ブランチ名 git switch ブランチ名 ブランチを切り替え
git checkout ファイル名 git restore ファイル名 ファイルを変更前に戻す

checkout は今も動くが、意図が伝わりにくい。今から覚えるなら switch / restore の方がわかりやすい。


fetch と pull の違い

git fetch = リモートの変更を取得するだけ(作業ディレクトリは変わらない)
git pull  = fetch + 取り込み処理をまとめてやる

git pull の取り込み処理は設定によって merge になったり rebase になったりする。デフォルトは merge

「何が変わったか確認してから取り込みたい」場合は fetchgit diff origin/mainmerge の順に。


まず覚えるなら status, add, commit, push, pull の5つ。残りは困った時に引けばいい。

だれでもLP — その思いつき、3分でページになる。