gitコマンド クイックリファレンス

git clone

リポジトリを新しいディレクトリに複製
説明 リポジトリを新しく作成したディレクトリに複製し、クローンリポジトリ内の各ブランチにリモート追跡ブランチを作成し(git branch --remotesを使用して表示)、クローンリポジトリの現在アクティブなブランチからフォークされた初期ブランチを作成、チェックアウトします。
クローン作成後、引数のないプレーンなgit fetchはすべてのリモート追跡ブランチを更新し、加えて引数のないgit pullはリモートマスターブランチを現在のマスターブランチにマージします(ただし、”–single-branch”の場合、これには当てはまりません。以下参照)。
このデフォルト設定はrefs/remotes/originの下にリモートブランチヘッドへの参照を作成し、remote.origin.urlおよびremote.origin.fetch設定変数を初期化することによって実行されます

git init

空のGitリポジトリを作成、もしくは既存のリポジトリを再初期化
説明 このコマンドは空のGitリポジトリを作成します。基本的にはobjects、refs/heads、refs/tags、およびテンプレートファイルのサブディレクトリを持つ.gitディレクトリです。
マスターブランチのヘッドを参照する初期HEADファイルも作成されます。
$GIT_DIR環境変数が設定されている場合、リポジトリのベースとして./.gitの代わりに使用するパスを指定します。
オブジェクトストレージディレクトリが$GIT_OBJECT_DIRECTORY環境変数を介して指定されている場合、sha1ディレクトリがその下に作成されます。それ以外の場合、デフォルトの$GIT_DIR/objectsディレクトリが使用されます。
既存のリポジトリでgit initを実行しても安全となっています。すでに存在するものを上書きしてしまうことはありません。git initを再実行する主な理由としては新しく追加されたテンプレートを取得することです(もしくは-separate-git-dirが指定されている場合、リポジトリを別の場所に移動することです)。

git add

ファイルのコンテンツをインデックスに追加
説明 このコマンドではワークツリー上にある現在のコンテンツを使用してインデックスを更新し、次のコミットのためにステージングされたコンテンツを準備します。通常、全体として既存のパスの現在のコンテンツを追加しますが、一部のオプションではワークツリーファイルに加えられた変更の一部のみを適用してコンテンツを追加したり、ワークツリーに存在しないパスを削除することもできます。
「インデックス」はワークツリーのコンテンツのスナップショットを保持しており、これは次のコミットのコンテンツとして取得されるスナップショットです。したがって、ワークツリーに変更を加えた後、コミットコマンドを実行する前、addコマンドを使用し、新しいファイルまたは変更されたファイルをインデックスに追加する必要があります。
このコマンドはコミットする前に複数回実行することができます。addコマンドの実行時、指定されたファイルのコンテンツのみが追加されます。次のコミットに続けて変更を含める場合、git addを再実行し、新しいコンテンツをインデックスに追加する必要があります。
git statusコマンドを使用し、次のコミットのためにステージングされる変更が含まれているファイルを取得することができます。
git addコマンドはデフォルトでは無視されたファイルを追加しません。無視されたファイルがコマンドラインで明示的に指定された場合、git addは無視されたファイルのリストでは機能しません。Gitによって実行されたディレクトリの再帰またはファイル名のグロブ(シェル前にグロブを引用)によってリーチされた無視されたファイルはそのままになります。git addコマンドは-f(force)オプションを持つ無視されたファイルを追加するのに使用できます。
コミットにコンテンツを追加する他の方法についてはgit-commit[1] を参照してください。

git diff

コミット、コミットとワークツリーなどの間の変更を表示
説明 ワークツリーとインデックスまたはツリー間の変更、インデックスとツリー間の変更、2つのツリー間の変更、マージによる変更、2つのブロブオブジェクト間の変更、またはディスク上の2つのファイル間の変更を表示します。

git log

コミットログを表示
説明 コミットログを表示します。
指定されたコミットからparentリンクを辿ることによって到達可能なコミットをリスト化しますが、その前に「^」が付いているコミットから到達可能なコミットは除外します。デフォルトでは出力は新しいものから順に表示されるようになっています。
これはセットオペレーションとして考えることができます。コマンドラインで指定されたコミットのいずれかから到達可能なコミットがセットを作成し、「^」が前に付いたコミットのいずれかから到達可能なコミットがそのセットから差し引かれます。残りのコミットはコマンドに出力されるものです。他の様々なオプションとパスパラメータを使用して、結果をさらに制限できます。

git status

ワークツリーのステータスを表示
説明 インデックスファイルと現在のヘッドコミットに違いがあるパス、ワークツリーとインデックスファイルに違いがあるパス、Gitによって追跡されない(そしてgitignore[5]によって無視されない)ワークツリー内のパスを表示します。1つ目はgit
commitを実行してコミットするものです。2番目と3番目はgit commitを実行する前に「gitadd」を実行することでコミットできるものです。

git branch

ワークツリーのステータスを表示
説明 --listが指定されている場合、またはオプション以外の引数がない場合、既存のブランチが一覧表示されます。現在あるブランチは緑色でハイライトされ、アスタリスクでマークされます。リンクされたワークツリーでチェックアウトされたブランチは青緑色でハイライトされ、プラス記号でマークされます。オプション-rを指定すると、リモート追跡ブランチが一覧表示され、オプション-aを使用すると、ローカルブランチとリモートブランチの両方が表示されます。

git commit

リポジトリへの変更を記録
説明 インデックスの現在の内容と変更を説明する指定されたログメッセージを含む新しいコミットを作成します。新しいコミットはヘッドの直接のチャイルドであり、通常は現在のブランチの末端であり、ブランチはそれを指すように更新されます(ブランチがワークツリーに関連付けられていない場合を除きます。この場合、ヘッドはgit-checkout[1]で説明されているように「detached」とされます)。
コミットするコンテンツはいくつかの方法で指定できます。
git-add[1] を使用し、commitコマンドを使用する前にインデックスに変更を段階的に「追加」します(注記:変更されたファイルでも「追加」する必要があります)。
再びcommitコマンドを使用する前に、git-rm[1] を使用してワークツリーとインデックスからファイルを削除します。
commitコマンドの引数としてファイルを一覧表示します(「–interactive」または「–patch」スイッチなし)。この場合、commitはインデックスにステージングされた変更を無視し、代わりに一覧表示されたファイルの現在のコンテンツを記録します( Gitに通知されます) commitコマンドで「-a」スイッチを使用し、すべての既知のファイル(つまり、インデックスに既に一覧表示されているすべてのファイル)からの変更を自動的に「追加」し、インデックスから削除されたファイルを自動的に「rm」します。ワークツリーを作成してから、実際のコミットを実行します。
操作を完了する前にcommitコマンドで「–interactive」または「–patch」スイッチを使用して、インデックスの内容に加えて、どのファイルまたはハンクをコミットの一部にするかを1つずつ決定します。これらのモードの操作方法についてはgit-add[1] の「インタラクティブモード」セクションを参照してください。
with git reset. --dry-runオプションを使用すると、同じパラメーターセット(オプションとパス)を指定することで、次のコミットで上記のいずれかに含まれるものの概要を取得できます。
コミットを行い、その直後に間違いを見つけた場合、「gitreset」を使用してそれからリカバリーできます。

git merge

2つ以上の開発履歴を統合
説明 名前付きコミットからの変更を(履歴が現在のブランチから分岐したため)現在のブランチに組み込みます。このコマンドは別のリポジトリからの変更を組み込むために「git pull」によって使用され、あるブランチから別のブランチに変更をマージするために手動で使用できます。

git switch

ブランチを切り替えます
説明 指定されたブランチに切り替えます。ワークツリーとインデックスはブランチに一致するように更新されます。すべての新しいコミットはこのブランチの末端に追加されます。
オプションで同じ名前のリモートブランチから自動的に-cと-Cを使用して新しいブランチを作成するか(--guessを参照)、切り替えとともに--detachを使用して任意のブランチからワークツリーをデタッチできます。
ブランチを切り替えるにはクリーンなインデックスとワークツリーは必要ありません(つまり、HEADとの違いはありません)。ただし--discard-changesまたは --mergeで特に指示されない限り、操作によってローカル変更が失われると、操作は中止されます。
このコマンドは実験的なものであり、動作が変わる可能性があります。

git fetch

別のリポジトリからオブジェクトと参照をダウンロードします
説明 1つ以上の他のリポジトリからブランチやタグ(総称して「refs」という)をそれらの履歴を完成させるために必要なオブジェクトとともにフェッチします。リモート追跡ブランチが更新されます。

git pull

別のリポジトリまたはローカルブランチからフェッチして統合
説明 リモートリポジトリからの変更を現在のブランチに組み込みます。デフォルトモードではgit pullはgit fetchの省略形であり、その後にgit merge FETCH_HEADが続きます。
より正確には「git pull」は指定されたパラメーターを使用して「git fetch」を実行し、「git merge」を呼び出し、取得したブランチヘッドを現在のブランチにマージします。--rebaseを使用すると、「gitmerge」の代わりに「gitrebase」を実行します。