Git チートシート
基本操作
-
git init詳細 ↓リポジトリを新規作成・初期化する
-
git clone <url>詳細 ↓リモートリポジトリを複製する
-
git config --global user.name <name>詳細 ↓ユーザー設定を変更する
-
git status詳細 ↓現在の変更状況を確認する
-
git add <file>詳細 ↓変更をステージングエリアに追加する
-
git commit -m "<msg>"詳細 ↓変更を記録(コミット)する
-
git tag <name>詳細 ↓コミットにタグ(名前)を付ける
ブランチ操作
-
git switch <name>詳細 ↓ブランチを切り替える
-
git switch -c <name>詳細 ↓ブランチを新規作成して切り替える
-
git branch詳細 ↓ブランチ一覧を表示する
-
git merge <branch>詳細 ↓別のブランチを統合する
リモート連携
-
git pull詳細 ↓リモートの変更を取得して取り込む
-
git push詳細 ↓ローカルの変更をリモートへ送信する
-
git remote -v詳細 ↓リモートリポジトリを確認する
-
git submodule add <url>詳細 ↓サブモジュールを追加する
履歴確認
-
git log --oneline詳細 ↓コミット履歴を確認する
-
git diff詳細 ↓変更差分を確認する
-
git blame <file>詳細 ↓行ごとの変更者を表示する
高度な操作
-
git stash詳細 ↓変更を一時的に退避する
-
git stash pop詳細 ↓退避した変更を復元する
-
git rebase <branch>詳細 ↓履歴を再構築して統合する
-
git rebase -i HEAD~<n>詳細 ↓過去のコミットを整理・修正する
-
git cherry-pick <commit>詳細 ↓特定のコミットだけを取り込む
-
git bisect start詳細 ↓バグの原因コミットを二分探索する
-
git worktree add <path> <branch>詳細 ↓複数のブランチを同時に編集する
取り消し
-
git reset --soft HEAD^詳細 ↓直前のコミットだけを取り消す
-
git reset --hard HEAD詳細 ↓変更を全て破棄して戻す
-
git revert <commit>詳細 ↓打ち消しコミットを作成する
救済措置
-
git reflog詳細 ↓操作履歴を確認する(救済用)
ファイル操作
-
git clean -fd詳細 ↓追跡対象外ファイルを削除する
コードをクリックでコピー / 詳細へスクロール
詳細リファレンス
git init
リポジトリを新規作成・初期化する使用例
git init 解説
現在のディレクトリをGitリポジトリとして初期化し、管理用の.gitディレクトリを作成します。プロジェクトの開始時に一度だけ実行する基本コマンドです。
git clone <url>
リモートリポジトリを複製する使用例
git clone https://github.com/user/repo.git 解説
リモートリポジトリの内容をローカルに丸ごとダウンロード(複製)します。開発を始める際に最初に実行するコマンドです。
git config --global user.name <name>
ユーザー設定を変更する使用例
git config --global user.name "Taro Yamada" 解説
コミット時のユーザー名やメールアドレスなどを設定します。`--global` を付けるとPC全体、付けないと現在のリポジトリのみに適用されます。
git status
現在の変更状況を確認する使用例
git status 解説
どのファイルが変更されたか、ステージングされたかなど、ワーキングツリーの現在の状態を表示します。迷ったらまずはこのコマンドを叩く癖をつけましょう。
git add <file>
変更をステージングエリアに追加する使用例
git add . 解説
作業ディレクトリの変更を、次回のコミット対象としてインデックス(ステージングエリア)に登録します。`.`を指定すると全変更を一括で追加できます。
git commit -m "<msg>"
変更を記録(コミット)する使用例
git commit -m "Fix login bug" 解説
ステージングされた変更をリポジトリの履歴として確定・保存します。`-m` オプションで記録内容を要約したメッセージを付与します。
git tag <name>
コミットにタグ(名前)を付ける使用例
git tag v1.0.0 解説
特定のコミットに「v1.0」などの分かりやすい名前(タグ)を付けます。リリースポイントや重要なマイルストーンを記録するために使用されます。
git switch <name>
ブランチを切り替える使用例
git switch develop 解説
作業するブランチを切り替えます。以前の `git checkout` よりも目的が明確で安全な、新しい推奨コマンドです。
git switch -c <name>
ブランチを新規作成して切り替える使用例
git switch -c feature/new-ui 解説
新しいブランチを作成し、同時にそのブランチに切り替えます。`git checkout -b` と同等の操作ですが、より直感的です。
git branch
ブランチ一覧を表示する使用例
git branch -a 解説
ローカルブランチの一覧を表示します。`-a` オプションを付けると、リモートブランチも含めた全てのブランチを確認できます。
git merge <branch>
別のブランチを統合する使用例
git merge feature/login 解説
指定したブランチの変更履歴を、現在のブランチに取り込みます。機能開発が完了したブランチをメインブランチに統合する際などに使用します。
git pull
リモートの変更を取得して取り込む使用例
git pull origin main 解説
リモートリポジトリの最新の変更をダウンロードし、現在のブランチにマージします。`git fetch` と `git merge` を一度に行うコマンドです。
git push
ローカルの変更をリモートへ送信する使用例
git push origin feature/login 解説
ローカルでコミットした変更履歴をリモートリポジトリにアップロードします。チームメンバーとコードを共有するために不可欠です。
git remote -v
リモートリポジトリを確認する使用例
git remote -v 解説
登録されているリモートリポジトリの一覧とURLを表示します。`origin` 以外のリモート先を追加・管理する場合に使用します。
git submodule add <url>
サブモジュールを追加する使用例
git submodule add https://github.com/lib/utils.git 解説
別のGitリポジトリを、現在のリポジトリのサブディレクトリとして埋め込んで管理します。外部ライブラリを直接取り込む際などに使われます。
git log --oneline
コミット履歴を確認する使用例
git log --oneline --graph 解説
これまでのコミット履歴を表示します。`--oneline --graph` オプションを使うと、ブランチの分岐構造が視覚的に分かりやすく表示されます。
git diff
変更差分を確認する使用例
git diff HEAD 解説
ステージングされていない変更点や、直前のコミットとの差分を表示します。何を変更したか詳細に確認してからコミットする際に役立ちます。
git blame <file>
行ごとの変更者を表示する使用例
git blame src/main.ts 解説
ファイルの各行がいつ、誰のコミットによって変更されたかを行単位で表示します。バグの原因調査(犯人探し)や、コードの意図を質問する相手を探すのに役立ちます。
git stash
変更を一時的に退避する使用例
git stash save "WIP" 解説
作業途中でまだコミットしたくない変更を、一時的に別の場所に退避させます。別のブランチで急遽作業が必要になった時などに非常に便利です。
git stash pop
退避した変更を復元する使用例
git stash pop 解説
直前に `git stash` で退避させた変更を、現在の作業ディレクトリに戻(適用)します。適用後、退避データはリストから削除されます。
git rebase <branch>
履歴を再構築して統合する使用例
git rebase main 解説
ブランチの派生元を指定したブランチの最新コミットに付け替えます。履歴が一直線になり綺麗になりますが、履歴を書き換えるため注意が必要です。
git rebase -i HEAD~<n>
過去のコミットを整理・修正する使用例
git rebase -i HEAD~3 解説
直近のコミットをまとめたり、メッセージを修正したり、削除したりできます。履歴を綺麗にしてからプルリクエストを出したい場合に使用します。
git cherry-pick <commit>
特定のコミットだけを取り込む使用例
git cherry-pick a1b2c3d 解説
別のブランチにある特定のコミットだけを選んで、現在のブランチに適用します。バグ修正だけを緊急でマージしたい場合などに有効です。
git bisect start
バグの原因コミットを二分探索する使用例
git bisect start -> bad -> good 解説
自動的な二分探索によって、バグが混入したコミットを特定します。手当たり次第にチェックするよりも遥かに効率的に原因を突き止められます。
git worktree add <path> <branch>
複数のブランチを同時に編集する使用例
git worktree add ../hotfix main 解説
一つのリポジトリで複数の作業ディレクトリ(ワークツリー)を作成します。ブランチを切り替えることなく、別のフォルダで並行して別ブランチの作業ができます。
git reset --soft HEAD^
直前のコミットだけを取り消す使用例
git reset --soft HEAD^ 解説
コミット自体はなかったことにしますが、変更されたファイルの内容やステージング状態はそのまま残します。コミットのやり直しに便利です。
git reset --hard HEAD
変更を全て破棄して戻す使用例
git reset --hard HEAD 解説
作業ディレクトリの全ての変更を破棄し、指定したコミットの状態に強制的に戻します。取り消すと元に戻せないため、使用には十分注意してください。
git revert <commit>
打ち消しコミットを作成する使用例
git revert <commit-id> 解説
指定したコミットの変更を打ち消す(逆の変更を行う)新しいコミットを作成します。履歴を消さずに修正できるため、リモートにプッシュ済みの変更を戻す場合に安全です。
git reflog
操作履歴を確認する(救済用)使用例
git reflog 解説
HEADの移動履歴を一覧表示します。`git reset --hard` で消してしまったコミットや、削除したブランチの内容を探し出して復元する際の命綱です。
git clean -fd
追跡対象外ファイルを削除する使用例
git clean -fd 解説
Gitの管理下にない(untrackedな)ファイルやディレクトリを一括削除します。ビルド生成物などで汚れたディレクトリを掃除するのに便利です。