Git コマンドチートシート

58 件のコマンド

git init

カレントディレクトリをGitリポジトリとして初期化します

git clone <url>

リモートリポジトリをローカルにコピーします

git clone --depth 1 <url>

最新のコミットだけを取得する軽量クローンです(履歴なし)

git add <file>

指定ファイルをステージングエリアに追加します

git add .

変更されたすべてのファイルをステージングエリアに追加します

git add -p

変更を対話的に選択してステージングします(ハンク単位)

git restore --staged <file>

指定ファイルをステージングから取り消します(変更は保持)

git status

ワーキングツリーとステージングの現在の状態を表示します

git diff

ステージングされていない変更の差分を表示します

git diff --staged

ステージング済みの差分を表示します(コミット前確認に便利)

git commit -m "<message>"

メッセージを指定してステージングの内容をコミットします

git commit --amend

直前のコミットのメッセージや内容を修正します

git commit --amend --no-edit

メッセージを変更せずにステージング内容を直前のコミットに追加します

git commit -am "<message>"

追跡済みファイルを全てステージングしてコミットします(git add省略)

git branch

ローカルブランチの一覧を表示します

git branch -a

ローカルとリモートの全ブランチを表示します

git branch <name>

新しいブランチを作成します(切り替えは行いません)

git switch <branch>

指定ブランチに切り替えます

git switch -c <branch>

新しいブランチを作成して即切り替えます

git branch -d <branch>

マージ済みのブランチを削除します(未マージは削除不可)

git branch -m <old> <new>

ブランチ名を変更します

git merge <branch>

指定ブランチを現在のブランチにマージします

git merge --no-ff <branch>

Fast-forwardを禁止しマージコミットを必ず作成します

git rebase <branch>

現在のブランチを指定ブランチの先端に移動します

git rebase -i HEAD~<n>

直近n件のコミットを対話的に整形します(squash等)

git cherry-pick <commit>

指定コミットの変更だけを現在のブランチに取り込みます

git remote -v

登録済みリモートリポジトリのURLを一覧表示します

git remote add origin <url>

originという名前でリモートリポジトリを登録します

git fetch origin

リモートの変更を取得します(ローカルブランチには反映しません)

git pull origin <branch>

リモートブランチから変更を取得してマージします

git pull --rebase origin <branch>

リモートブランチから取得してリベースで統合します(マージコミットなし)

git push origin <branch>

ローカルブランチをリモートにプッシュします

git push -u origin <branch>

初回プッシュ時に追跡設定も同時に行います

git push --force-with-lease

安全な強制プッシュです(他者の変更を誤って上書きしません)

git log

コミット履歴を表示します

git log --oneline --graph

ブランチのグラフをコンパクトに表示します

git log -p <file>

指定ファイルのコミット履歴と差分を表示します

git show <commit>

指定コミットの詳細と変更内容を表示します

git blame <file>

各行を最後に変更したコミットと作者を表示します

git stash

コミットしていない変更を一時的に退避します

git stash pop

最新のスタッシュを復元してスタッシュから削除します

git stash list

保存済みスタッシュの一覧を表示します

git stash drop stash@{<n>}

指定したスタッシュを削除します

git tag

タグの一覧を表示します

git tag <name>

現在のHEADに軽量タグを作成します

git tag -a <name> -m "<msg>"

メッセージ付きの注釈タグを作成します(リリースに推奨)

git push origin <tag>

指定タグをリモートにプッシュします

git tag -d <tag>

ローカルのタグを削除します

git restore <file>

指定ファイルの変更を破棄してHEADの状態に戻します

git restore .

ワーキングツリーの全変更を破棄します(操作は不可逆)

git revert <commit>

指定コミットを打ち消す新しいコミットを作成します(履歴を保持)

git reset --soft HEAD~1

直前のコミットを取り消し、変更をステージング済みの状態で残します

git reset --hard HEAD~1

直前のコミットとその変更を完全に削除します(不可逆・要注意)

git reflog

HEADの移動履歴を表示します(誤ってリセットしたコミットの復元に有効)

git config --global user.name "<name>"

Gitのユーザー名をグローバルに設定します

git config --global user.email "<email>"

Gitのメールアドレスをグローバルに設定します

git config --list

現在のGit設定を全て表示します

git config --global alias.<name> "<cmd>"

Gitコマンドのショートカット(エイリアス)を作成します

使い方

  1. STEP 1
    カテゴリボタンで操作ジャンルを絞り込みます(コミット・ブランチ・リモートなど)。
  2. STEP 2
    検索バーにやりたい操作や単語を入力すると、コマンドをリアルタイムで絞り込めます。
  3. STEP 3
    コマンドカード右上のコピーボタンをクリックするとクリップボードにコピーされます。
  • '<'url'>'・'<'branch'>'・'<'file'>' などの '< >' で囲まれた部分は実際の値に置き換えてください。
  • git reset --hard や git restore . などは変更が失われる操作です。実行前に内容を確認してください。

豆知識

1

git log --oneline --graph --all を使うとブランチの全体像を俯瞰できます。

2

git reflog はリセットや誤操作で失ったコミットを復元する際に非常に有用です。

3

git push --force-with-lease は force push より安全で、他者の変更を誤って上書きするリスクを低減します。

よくある質問

  • Q1

    git checkout と git switch の違いは何ですか?

    git switch はGit 2.23以降に追加されたブランチ切り替え専用のコマンドです。git checkout はブランチ切り替えとファイル復元の両方を担っていたため混乱しやすく、現在は用途を分けた switch / restore の使用が推奨されています。

  • Q2

    コマンドがわからなくなったとき、まず何を確認すればいいですか?

    git help '<'command'>' または git '<'command'>' --help でブラウザにマニュアルが開きます。また git status でリポジトリの現在の状態を確認するのが最初のステップです。