Gitチートシート - 基本操作・ブランチ・取り消し

6分 で読める | 2025.12.15

公式ドキュメント

最頻出10項目

やりたいことコマンド
状態を確認git status
差分を確認git diff
ステージ済み差分git diff --staged
変更を選ぶgit add <file>
コミットgit commit -m "message"
履歴を確認git log --oneline --graph
ブランチ作成・移動git switch -c <branch>
ファイル変更を戻すgit restore <file>
リモート情報を取得git fetch
共有するgit push

迷ったら、最初に git status、コミット前に git diffgit diff --staged を確認します。

開始と基本の流れ

git clone <repository-url>
cd <repository>
git status

git add src/app.js
git diff --staged
git commit -m "Add input validation"
git push

新しいフォルダで履歴管理を始める場合は git init を使います。秘密鍵、APIキー、.env などの秘密情報はコミットせず、.gitignore と秘密情報管理の仕組みを使います。

状態と差分

コマンド確認できること
git diff未ステージの変更
git diff --stagedステージ済みの変更
git show <commit>コミット内容
git log --oneline --decorate --graph --allブランチを含む履歴

git add . は意図しないファイルも含める可能性があります。コミットを小さく保つには、ファイル名や git add -p で変更を選びます。

ブランチ

git branch
git switch -c feature/login
git switch main
git merge feature/login
git branch -d feature/login

git checkout は古くからある多目的コマンドで、次の操作もできます。

git checkout main
git checkout -b feature/login
git checkout -- src/app.js

それぞれ switchswitch -crestore に対応します。checkout も有効ですが、初心者は役割が明確な新しいコマンドを第一候補にします。

リモートとの同期

git remote -v
git fetch origin
git log --oneline HEAD..origin/main
git pull --ff-only
git push -u origin feature/login

git fetch はリモートの情報を取得しますが、作業中のブランチは変更しません。git pull は取得後に統合も行います。履歴を意図せず作り替えたくない場合は、チームの方針に合わせて --ff-only--rebase を選びます。

変更を戻す

未ステージのファイル変更を破棄します。

git restore src/app.js

ステージだけを取り消し、ファイルの変更は残します。

git restore --staged src/app.js

共有済みコミットを打ち消す新しいコミットを作ります。

git revert <commit>

restore で破棄した未コミット変更は、通常Gitから復元できません。実行前に git diff を確認してください。共有履歴の取り消しには、履歴を書き換えない git revert が基本です。

コンフリクト

git status
# ファイル内の競合部分を編集する
git add <resolved-file>
git commit
git merge --abort
git rebase --abort

競合マーカーを機械的に削除するだけでは不十分です。両方の変更意図を確認し、テストしてからコミットします。

危険な操作

次のコマンドは未コミット変更や履歴を失う可能性があります。

git reset --hard <commit>
git clean -nd
git clean -fd
git push --force-with-lease
  • reset --hard はインデックスと作業ツリーを指定コミットへ合わせます。
  • clean -fd は未追跡ファイルとディレクトリを削除します。先に clean -nd で対象を表示します。
  • force pushはリモート履歴を書き換えます。必要性と対象ブランチをチームで確認します。

--force-with-lease も常に安全ではありません。保護ブランチではforce pushを避けます。

参考リソース

← 一覧に戻る
PR
PR
PR
PR