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 reflogHEADの移動履歴を表示します(誤ってリセットしたコミットの復元に有効)
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コマンドのショートカット(エイリアス)を作成します
使い方
- STEP 1
- カテゴリボタンで操作ジャンルを絞り込みます(コミット・ブランチ・リモートなど)。
- STEP 2
- 検索バーにやりたい操作や単語を入力すると、コマンドをリアルタイムで絞り込めます。
- STEP 3
- コマンドカード右上のコピーボタンをクリックするとクリップボードにコピーされます。
注意事項
- '<'url'>'・'<'branch'>'・'<'file'>' などの '< >' で囲まれた部分は実際の値に置き換えてください。
- git reset --hard や git restore . などは変更が失われる操作です。実行前に内容を確認してください。
豆知識
git log --oneline --graph --all を使うとブランチの全体像を俯瞰できます。
git reflog はリセットや誤操作で失ったコミットを復元する際に非常に有用です。
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 でリポジトリの現在の状態を確認するのが最初のステップです。