コマンドリファレンス
git コマンドの使い方をカテゴリ別に解説します。
基本コマンド
リポジトリの作成・ファイルの追跡・コミットなどの基本操作
git add
git add <pathspec>... ファイルの変更をステージングエリアに追加します。次のコミットに含める内容を選択する操作です。
git clone
git clone <repository> [<directory>] リモートリポジトリをローカルにコピーします。コミット履歴・ブランチ・タグをすべてダウンロードして、すぐに作業を開始できます。
git commit
git commit [-m <message>] [options] ステージングエリアの内容をリポジトリに記録します。変更履歴の1つのスナップショットを作成します。
git diff
git diff [<options>] [<commit>] [--] [<path>...] ファイルの変更内容を比較して差分を表示します。作業ツリー・ステージング・コミット間の3パターンで利用できます。
git init
git init [<directory>] 新しい Git リポジトリを作成します。現在のディレクトリ(または指定したディレクトリ)を Git で管理できるようにします。
git mv
git mv <移動元> <移動先> ファイルやディレクトリの移動・リネームをGitに追跡させます。OSのmvコマンドとは異なり、Gitが変更を'rename'として認識するため履歴が途切れません。
git rm
git rm <pathspec>... ファイルをワーキングツリーとインデックスから削除します。Git の管理からファイルを外す際に使用します。
git status
git status [options] 作業ツリーの現在の状態を表示します。変更されたファイル・ステージング済みのファイル・未追跡のファイルを確認できます。
ブランチ操作
ブランチの作成・切り替え・マージ
git branch
git branch [options] [<branchname>] ブランチの作成・一覧表示・削除を行います。ブランチは独立した開発ラインを作るための仕組みです。
git checkout
git checkout <branch> | git checkout -b <new-branch> ブランチの切り替えや、特定のコミット時点のファイルを復元します。現代的な操作には git switch / git restore の使用が推奨されています。
git merge
git merge <branch> 別のブランチの変更を現在のブランチに統合します。機能ブランチで完成した変更をメインブランチに取り込む際に使います。
git rebase
git rebase <base-branch> コミット履歴を別のブランチの先端に付け替えます。履歴を一直線に整理できますが、共有ブランチへの使用は禁止です。
git switch
git switch <branch> ブランチを切り替えます。Git 2.23 で追加された新しいコマンドで、git checkout のブランチ切り替え機能を担います。
リモート操作
リモートリポジトリとのやり取り
git fetch
git fetch [<remote>] [<branch>] リモートリポジトリの変更を取得しますが、ローカルのブランチには自動でマージしません。変更内容を確認してから統合したいときに使います。
git ls-remote
git ls-remote [<options>] [<repository> [<refs>...]] フェッチせずにリモートリポジトリのブランチ・タグ・コミット情報を確認します。
git pull
git pull [<remote>] [<branch>] リモートリポジトリの変更を取得し、現在のブランチにマージします。git fetch + git merge を一度に行います。
git push
git push [<remote>] [<branch>] ローカルリポジトリのコミットをリモートリポジトリに送信します。変更を他のメンバーと共有したり、バックアップするために使います。
git remote
git remote <subcommand> [<options>] リモートリポジトリの追加・削除・確認・URLの変更などを管理します。GitHub や GitLab などの接続先を設定するときに使います。
履歴の確認
コミット履歴の表示・検索
git blame
git blame [options] <ファイル> ファイルの各行が誰によって・いつ・どのコミットで変更されたかを表示します。コードの変更履歴を行単位で追跡するときに使います。
git grep
git grep [options] <pattern> [<tree-ish>...] [[--] <pathspec>...] Gitが管理するファイル内のテキストをパターン検索します。ブランチやコミットを指定して検索することも可能です。
git log
git log [options] [<revision range>] [[--] <path>...] コミット履歴を表示します。誰がいつ何をコミットしたかを確認できます。
git shortlog
git shortlog [options] [<revision range>] [[--] <path>...] コミット履歴を著者ごとにまとめて表示します。コントリビューターの貢献度確認やリリースノートの作成に活用できます。
git show
git show [options] <object>... コミット・タグ・ブロブなどの Git オブジェクトの詳細情報を表示します。特定のコミットの変更内容や、任意の時点のファイル内容を確認するのに使います。
取り消し操作
変更の取り消し・コミットの修正
git clean
git clean [options] [path]... 追跡されていないファイルやディレクトリを作業ツリーから削除します。誤って作成した一時ファイルやビルド成果物をまとめて取り除く操作です。
git reset
git reset [mode] <commit> HEAD の位置を移動し、ステージングエリアや作業ツリーを指定した状態に戻します。主に個人ブランチでの履歴修正に使います。
git restore
git restore [options] <pathspec>... 作業ツリーやステージングエリアのファイルを指定した状態に復元します。誤って変更したファイルを元に戻す操作です。
git revert
git revert <commit>... 指定したコミットを打ち消す新しいコミットを作成します。共有ブランチの履歴を安全に取り消せる方法です。
git stash
git stash <subcommand> [options] 未コミットの変更を一時的に退避(スタッシュ)します。作業を中断してブランチを切り替えたいときに使います。
応用コマンド
より高度な操作
git bisect
git bisect <subcommand> [options] 二分探索でバグが混入したコミットを特定します。大量のコミット履歴から手作業で原因を探す手間を大幅に減らせます。
git cherry-pick
git cherry-pick [options] <commit>... 特定のコミットだけを選んで、現在のブランチに取り込みます。ブランチ全体をマージせず、必要な変更だけを持ってきたいときに使います。
git config
git config [--global|--local|--system] <key> [value] ユーザー名・メールアドレスなどの Git の動作設定を行います。個人設定からプロジェクト固有の設定、コマンドの alias 登録まで幅広く使います。
git reflog
git reflog [subcommand] [options] HEAD やブランチが指してきた履歴を記録した参照ログを表示します。誤って削除したコミットやブランチを復元する際の命綱になります。
git submodule
git submodule <subcommand> [options] 別の Git リポジトリを、自分のリポジトリの特定ディレクトリに子リポジトリとして組み込みます。外部ライブラリを独立したリポジトリのまま管理したいときに使います。
git tag
git tag [options] <tagname> [commit] 特定のコミットに名前を付けてマークします。リリースバージョンなど、重要な地点を記録するのに使います。
git worktree
git worktree <subcommand> [options] 1つのリポジトリから複数の作業ディレクトリを同時に作成します。ブランチを切り替えずに、別々のディレクトリで並行して作業したいときに使います。