Skip to content

Git コマンド チートシート

Git は、非常に小規模なプロジェクトから大規模なプロジェクトまで、バージョン管理を効率的かつ高速に処理できるオープンソースの分散型バージョン管理システムです。Git は、Linux カーネル開発の管理を支援するために Linus Torvalds によって開発されたオープンソースのバージョン管理ソフトウェアです。

Git の基礎

git init <directory>

指定されたディレクトリに空の Git リポジトリを作成します。引数なしで実行すると、現在のディレクトリを Git リポジトリとして初期化します。

git clone <repo>

<repo> にあるリポジトリをローカルマシンにクローンします。元のリポジトリは、ローカルファイルシステム上に置くことも、HTTP または SSH 経由でリモートマシン上に置くこともできます。

git config user.name <name>

現在のリポジトリ内のすべてのコミットで使用される作者名を定義します。

git add <directory>

次のコミットのために、<directory> 内の変更内容を追加します。

git commit -m "<message>"

ステージングされたスナップショットをコミットし、<message> をコミットメッセージとして使用します。

git status

どのファイルがステージング、未ステージング、未追跡の状態にあるかを一覧表示します。

git log

デフォルトの形式でコミット履歴全体を表示します。

git diff

作業ディレクトリ(まだ git add されていないもの)とステージング領域(git add した後)の差異を比較します。

変更の取り消し

git revert <commit>

<commit> で行われたすべての変更を取り消す新しいコミットを作成し、それを現在のブランチに適用します。

git reset <file>

ステージング領域から <file> を削除しますが、作業ディレクトリは変更しません。これにより、変更ファイルを上書きすることなく、ファイルのステージングを解除します。

git clean -n

作業ディレクトリから削除されるファイルを、実際に削除せずに表示します。削除を実行するには、-n フラグの代わりに -f フラグを使用します。

履歴の書き換え

git commit --amend

最新の Git コミットイベントを修正します。作業ディレクトリにコミット可能な変更がある場合、git commit --amend コマンドを使用して修正すると、作業ディレクトリの最新の変更も一緒にコミットされます。

git rebase <base>

現在のブランチを <base> にリベースします。<base> は、コミット ID、ブランチ名、タグ、または HEAD にすることができます。

git reflog

すべてのブランチのすべての操作記録(削除されたコミット記録やリセット操作を含む)を確認できます。

Git ブランチ

git branch

すべてのブランチを一覧表示します。<branch> 引数を追加すると、<branch> という名前の新しいブランチを作成します。

git checkout -b <branch>

<branch> という名前の新しいブランチを作成してチェックアウトします。既存のブランチをチェックアウトするには、-b を除いて実行します。

git merge <branch>

<branch> ブランチを現在のブランチにマージします。

リモートリポジトリ

git remote add <name> <url>

新しいリモートリポジトリを追加します。リモートを追加した後は、他のコマンドで <url> のショートカットとして <name> を使用できます。

git fetch <remote> <branch>

リポジトリから指定された <branch> のすべての更新内容を取得しますが、ローカルブランチとはマージしません。

git pull <remote>

現在のブランチの指定されたリモートコピーを取得し、即座にローカルコピーにマージします。

git push <remote> <branch>

ブランチを <remote> にプッシュします。必要なコミットやオブジェクトも一緒に送信されます。リモートリポジトリにブランチが存在しない場合は、リモートリポジトリに指定された名前のブランチが作成されます。

git config

git config --global user.name <name>

現在のユーザーによるすべてのコミットに使用される作者名を定義します。

git config --global user.email <email>

現在のユーザーによるすべてのコミットに使用される作者のメールアドレスを定義します。

git config --global alias.<alias-name> <git-command>

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

git config --system core.editor <editor>

コンピュータ上のすべてのユーザーに対して、コマンドで使用するテキストエディタを設定します。

git config --global --edit

テキストエディタでグローバル設定ファイルを開き、手動で編集します。

git log

git log -<limit>

直近の <limit> 件のコミット履歴を表示します。

git log --oneline

各コミットを 1 行に圧縮してコミット履歴を表示します。

git log -p

コミット履歴を表示し、各コミットの完全な差異(diff)を表示します。

git log --stat

コミット履歴を表示します。これには、どのファイルが修正されたか、および各ファイルから追加または削除された相対的な行数が含まれます。

git log --author="<pattern>"

特定の作者のコミットを検索します。

git log --grep="<pattern>"

正規表現を使用してコミット履歴を検索します。

git log <since>..<until>

<since> と <until> の間に発生したコミットを表示します。

git log -- <file>

指定されたファイルを含むコミット記録のみを表示します。

git diff

git diff HEAD

作業ディレクトリ(git add されていないもの)とリポジトリ(git commit した後)のファイル差異を比較します。

git diff --cached

ステージング領域(git add した後)とリポジトリ(git commit した後)のファイル差異を比較します。

git reset

git reset

ステージング領域を最新のコミットに合わせてリセットしますが、作業ディレクトリは変更しません。

git reset --hard

ステージング領域と作業ディレクトリを両方とも最新のコミットに合わせてリセットし、作業ディレクトリ内のすべての変更を上書きします。

git reset <commit>

現在のブランチのポインタを <commit> まで戻し、ステージング領域をリセットしますが、作業ディレクトリは変更しません。

git reset --hard <commit>

上記と同じですが、ステージング領域と作業ディレクトリの両方をリセットします。未コミットの変更、および <commit> 以降のすべてのコミットを削除します。

git pull

git pull --rebase <remote>

現在のブランチのリモートコピーを取得し、ローカルコピーに対してリベースします。ブランチの統合には、マージではなく git rebase を使用します。

git push

git push <remote> --force

強制的にプッシュします。

git push <remote> --all

すべてのローカルブランチを指定されたリモートにプッシュします。

git push <remote> --tags

すべてのローカルタグをリモートリポジトリにプッシュします。