エンジニアの技術・コマンド早見表 (Ref.)

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な)ファイルやディレクトリを一括削除します。ビルド生成物などで汚れたディレクトリを掃除するのに便利です。