SYNOPSIS
'git' [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--no-lazy-fetch]
[--no-optional-locks] [--no-advice] [--bare] [--git-dir=<path>]
[--work-tree=<path>] [--namespace=<name>] [--config-env=<name>=<envvar>]
<command> [<args>]
DESCRIPTION
Gitは、高速でスケーラブルな分散型リビジョン管理システムであり、高レベルの操作と内部へのフルアクセスの両方を提供する非常に豊富なコマンドセットを備えています。
始めは gittutorial(7) を参照してください。次に、便利な最小限のコマンドセットについては giteveryday(7) を参照してください。 Git User’s Manual には、より詳細な紹介があります。
あなたが基本的な概念をマスターしたら、このページに戻ってGitが提供するコマンドを学ぶことができます。「git help command」を使用して、個々のGitコマンドについて詳しく知ることができます。 gitcli(7) のマニュアルページには、コマンドラインコマンド構文の概要が記載されています。
最新のGitドキュメントの、フォーマットされ、ハイパーリンクされたコピーは、 https://git.github.io/htmldocs/git.html または https://git-scm.com/docs で表示できます。
OPTIONS
-
-v -
--version -
gitプログラムの元となったGitスイートのバージョンを出力します。このオプションは内部で
gitversion... に変換されるので、 git-version(1) コマンドと同じオプションを受け入れます。--helpも指定されている場合は--versionよりも優先されます。 -
-h -
--help -
概要と、最も一般的に使用されるコマンドのリストを出力します。 オプション
--allまたは-aを指定すると、使用可能なすべてのコマンドが出力されます。Gitコマンドが明示された場合、このオプションはそのコマンドのマニュアルページを表示します。マニュアルページの表示方法を制御するために、他のオプションを使用できます。
git--help... は内部でgithelp... に変換されるため、詳細については git-help(1) を参照してください。 -
-C<path> -
現在の作業ディレクトリではなく、 <path> でgitが開始されたかのように実行します。 複数の
-Cオプションが指定されている場合、後続の「非絶対(non-absolute)-C<path> 」は、それぞれ先行する-C<path> に関連して解釈されます。 <path> は存在するが空の場合(例:-C" ")の場合、 現在の作業ディレクトリは変更されません。このオプションは、パス名の解釈が
-Cオプションによって引き起こされる作業ディレクトリに対して行われるという点で、--git-dirや--work-treeのようなパス名を期待するオプションに影響します。たとえば、以下の2つの呼び出しは同等です:git --git-dir=a.git --work-tree=b -C c status git --git-dir=c/a.git --work-tree=c/b status -
-c<name>=<value> -
構成パラメーターをコマンドに渡します。指定された値は、構成ファイルの値を上書きします。 <name>は、「git config」(ドットで区切られたサブキー)でリストされているものと同じ形式である必要があります。
git-cfoo.bar... で=を省略することは許可されており、その場合foo.barを(設定ファイルの [foo]barと同様に)ブール値のtrueに設定することに注意してください。等号と空の値(git-cfoo.bar=... など)を含むと、foo.barが空の文字列に設定されます。gitconfig--type=boolではこれをfalseに変換します。 -
--config-env=<name>=<envvar> -
-c<name>=<value> と同様に、構成変数 <name> に値を指定します。ここで、 <envvar> は、値を取得する環境変数の名前です。-cとは異なり、値を空の文字列に直接設定するためのショートカットはありません。代わりに、環境変数自体を空の文字列に設定する必要があります。 <envvar> が環境に存在しない場合はエラーになります。 <envvar> には等号を含めることはできません。これは、 <name> に等号が含まれている場合のあいまいさを避けるためです。これは、 一時的な構成オプションを git に渡したい場合に役立ちます。 特に、 他のプロセスがコマンドライン(例:
/proc/self/cmdline)を読み取れるが、 環境変数は読み取れない(例:/proc/self/environ)オペレーティング・システムでこの状況が発生します。 このような振る舞いは Linux ではデフォルトですが、 お使いのシステムではそうではない可能性があります。注意:これにより、機密情報が値の一部である
http.extraHeaderなどの変数のセキュリティが追加される可能性がありますが、機密情報をキーの一部にすることができるモノ、例えばurl.<base>.insteadOfは使用できません。 -
--exec-path[=<path>] -
あなたのコアGitプログラムがインストールされている場所へのパス。これは、 GIT_EXEC_PATH 環境変数を設定することによっても制御できます。パスが指定されていない場合、「git」は現在の設定を出力して終了します。
-
--html-path -
GitのHTMLドキュメントがインストールされているパスを末尾のスラッシュなしで出力し、終了します。
-
--man-path -
このバージョンのGitのマニュアルページのmanpath(
man(1) 参照)を出力して終了します。 -
--info-path -
このバージョンのGitを文書化したInfoファイルがインストールされているパスを出力して終了します。
-
-p -
--paginate -
標準出力が端末の場合は、すべての出力を
less(または設定されている場合は $PAGER )にパイプします。これにより、pager.<cmd> 構成オプションが上書きされます(以下の「Configuration Mechanism」セクションを参照)。 -
-P -
--no-pager -
Git出力をページャーにパイプしません。
-
--git-dir=<path> -
リポジトリ(".git" ディレクトリ)へのパスを設定します。これは、
GIT_DIR環境変数を設定することによっても制御できます。現在の作業ディレクトリへの絶対パスまたは相対パスにすることができます。このオプションを使用して
.gitディレクトリの場所を指定すると、 (リポジトリとトップレベルの作業ツリーを検出できる、).gitサブディレクトリを持つディレクトリを検索しようとするリポジトリ検出機能がオフになり、あなたが作業ツリーの最上位にいるとGitに通知します。あなたが作業ツリーの最上位ディレクトリにいない場合は、--work-tree=<path> オプション(またはGIT_WORK_TREE環境変数)を使用して、作業ツリーの最上位がどこにあるかをGitに通知する必要があります。<path> で開始されたかのようにgitを実行したい場合は、
git-C<path> を使用します。 -
--work-tree=<path> -
作業ツリーへのパスを設定します。絶対パスまたは現在の作業ディレクトリからの相対パスにすることができます。これは、 GIT_WORK_TREE環境変数とcore.worktree構成変数を設定することによっても制御できます(詳細については、 git-config(1) の core.worktree を参照してください)。
-
--namespace=<path> -
Git名前空間を設定します。詳細については gitnamespaces(7) を参照してください。
GIT_NAMESPACE環境変数を設定するのと同じです。 -
--bare -
リポジトリをベアリポジトリとして扱います。GIT_DIR環境が設定されていない場合は、現在の作業ディレクトリに設定されます。
-
--no-replace-objects -
Gitオブジェクトを置き換えるための置換参照(replacement refs)を使用しません。 これは
GIT_NO_REPLACE_OBJECTS環境変数を任意の値でエクスポートとするのと同等です。 詳細については git-replace(1) を参照してください。 -
--no-lazy-fetch -
プロミサー・リモートから欠落しているオブジェクトを必要に応じて取得しません。
gitcat-file-e<object> と一緒に使用すると、 オブジェクトがローカルで利用可能かどうかを確認するのに便利です。 これは、 環境変数GIT_NO_LAZY_FETCHを1に設定することと同じです。 -
--no-optional-locks -
ロック(lock)を必要とするオプションの操作は実行しないでください。これは、
GIT_OPTIONAL_LOCKSを0に設定するのと同じです。 -
--no-advice -
すべてのアドバイス・ヒントの表示を無効にします。
-
--literal-pathspecs -
パススペックを文字通り扱います(つまり globbing 無し、 pathspec magic 無しです)。 これは、
GIT_LITERAL_PATHSPECS環境変数を1に設定するのと同じです。 -
--glob-pathspecs -
すべてのパススペックにグロブマジック(glob magic)を追加します。 これは、
GIT_GLOB_PATHSPECS環境変数を1に設定するのと同じです。 個々のパススペックで globbing を無効にするには、パススペックマジック:(literal) を使用します。 -
--noglob-pathspecs -
すべてのパススペックにリテラルマジック(literal magic)を追加します。これは、
GIT_NOGLOB_PATHSPECS環境変数を1に設定するのと同じです。個々のパススペックでグロブを有効にするには、パススペックマジック:(glob) を使用します。 -
--icase-pathspecs -
すべてのパススペックに icase magic を追加します。 これは、
GIT_ICASE_PATHSPECS環境変数を1に設定するのと同じです。 -
--list-cmds=<group>[,<group>...] -
List commands by group. This is an internal/experimental option and may change or be removed in the future. Supported groups are: builtins, parseopt (builtin commands that use parse-options), deprecated (deprecated builtins), main (all commands in libexec directory), others (all other commands in
$PATHthat have git- prefix), list-<category> (see categories in command-list.txt), nohelpers (exclude helper commands), alias and config (retrieve command list from config variable completion.commands) -
--attr-source=<tree-ish> -
worktree ではなく <tree-ish> から gitattributes を読み取ります。 gitattributes(5) を参照してください。 これは
GIT_ATTR_SOURCE環境変数を設定するのと同じです。
GIT COMMANDS
私達はGitを、高レベル(porcelain;磁器)コマンドと低レベル(plumbing;配管)コマンドに分けています。
High-level commands (porcelain)
磁器コマンドは、メインコマンド群といくつかの補助ユーティリティに分けられます。
Main porcelain commands
- git-add(1)
-
ファイルの内容をインデックスに追加します.
- git-am(1)
-
メールボックスから一連のパッチを適用します.
- git-archive(1)
-
名前付きツリーからファイルのアーカイブを作成します.
- git-backfill(1)
-
部分クローン(partial clone)で欠落しているオブジェクトをダウンロード.
- git-bisect(1)
-
二分木検索を使用して、バグを引き起こしたコミットを見つけます.
- git-branch(1)
-
ブランチを、一覧表示または作成または削除します.
- git-bundle(1)
-
アーカイブを使ってオブジェクトや参照を移動.
- git-checkout(1)
-
ブランチの切り替え、または作業ツリーファイルの復元を行います。.
- git-cherry-pick(1)
-
いくつかの既存のコミットによって導入された変更を適用します.
- git-citool(1)
-
git-commitのグラフィカルな代替手段.
- git-clean(1)
-
作業ツリーから追跡されていないファイルを削除する.
- git-clone(1)
-
リポジトリを新しいディレクトリにクローン(複製)します.
- git-commit(1)
-
変更をリポジトリへ記録します.
- git-describe(1)
-
有効なrefに基づいて、オブジェクトに人間が読める形式の名前を付けます.
- git-diff(1)
-
コミット、コミット、作業ツリーなどの間の変更を表示する.
- git-fetch(1)
-
別のリポジトリからオブジェクトとrefsをダウンロードします.
- git-format-patch(1)
-
電子メール送信用のパッチを準備します.
- git-gc(1)
-
不要なファイルをクリーンアップし、ローカルリポジトリを最適化する.
- git-grep(1)
-
パターンにマッチする行を出力します.
- git-gui(1)
-
Gitのための移植性の高いGUI.
- git-init(1)
-
空のGitリポジトリを作成するか、既存のリポジトリを再初期化します.
- git-log(1)
-
コミットのログを表示.
- git-maintenance(1)
-
Gitリポジトリのデータを最適化するためのタスクの実行.
- git-merge(1)
-
2つまたはそれ以上の開発履歴を結合します.
- git-mv(1)
-
ファイルまたはディレクトリまたはシンボリックリンクを移動(move)または名前変更(rename)します.
- git-notes(1)
-
オブジェクト・ノートを追加または調べます.
- git-pull(1)
-
別のリポジトリまたはローカルブランチから取得して統合する.
- git-push(1)
-
関連するオブジェクトとともにリモートrefを更新します.
- git-range-diff(1)
-
2つのコミット範囲(例: ブランチの2つのバージョン)を比較します.
- git-rebase(1)
-
別のベース先端の上にコミットを再適用します.
- git-reset(1)
-
現在のHEADを指定の状態にリセットします.
- git-restore(1)
-
作業ツリーファイルを復元します.
- git-revert(1)
-
いくつかの既存のコミットを元に戻します.
- git-rm(1)
-
作業ツリーとインデックスからファイルを削除します.
- git-shortlog(1)
-
「git log」の出力を要約します。.
- git-show(1)
-
さまざまなタイプのオブジェクトを表示.
- git-sparse-checkout(1)
-
あなたの作業ツリーを追跡ファイルのサブセットのために縮小します.
- git-stash(1)
-
汚い作業ディレクトリの変更を隠します.
- git-status(1)
-
作業ツリーの状態を表示します.
- git-submodule(1)
-
サブモジュールを初期化、更新、または検査します.
- git-switch(1)
-
ブランチを切り替える.
- git-tag(1)
-
Create, list, delete or verify tags.
- git-worktree(1)
-
複数の作業ツリー(working tree)を管理します.
- gitk(1)
-
Gitリポジトリブラウザ.
- scalar(1)
-
大規模 Git リポジトリ管理ツール.
Ancillary Commands(補助コマンド)
操作コマンド:
- git-config(1)
-
リポジトリー・オプションまたはグローバル・オプションの取得・設定.
- git-fast-export(1)
-
Git データー・エクスポーター.
- git-fast-import(1)
-
高速 Git データ・インポーターのバックエンド.
- git-filter-branch(1)
-
ブランチを書き換えます.
- git-mergetool(1)
-
マージ競合解決ツールを実行して、マージ競合を解決します.
- git-pack-refs(1)
-
効率的なリポジトリーアクセスのためにヘッド(heads)とタグ(tags)をパックします.
- git-prune(1)
-
オブジェクトデータベースで、到達不能なすべてのオブジェクトを刈り込み(prune)します.
- git-reflog(1)
-
reflog情報を管理します.
- git-refs(1)
-
ref への低レベル・アクセス.
- git-remote(1)
-
追跡中のリポジトリの組を管理します.
- git-repack(1)
-
リポジトリ内のアンパックオブジェクトをパックする.
- git-replace(1)
-
オブジェクトを置き換えるためのrefsの作成、一覧表示、削除.
問合せコマンド:
- git-annotate(1)
-
指定ファイルの各行のコミット情報を表示.
- git-blame(1)
-
ファイルの各行を最後に変更したリビジョンと作者を表示する.
- git-bugreport(1)
-
ユーザーがバグ報告を提出するための情報を収集する.
- git-count-objects(1)
-
パックされていない(unpack)オブジェクトの数とそのディスク消費量を計量します.
- git-diagnose(1)
-
診断情報の zip アーカイブを生成する.
- git-difftool(1)
-
一般的なdiffツールを使用して変更を表示します.
- git-fsck(1)
-
データベース内のオブジェクトの接続性(connectivity)と有効性(validity)を検証します.
- git-help(1)
-
Gitに関するヘルプ情報を表示します.
- git-instaweb(1)
-
gitwebで作業リポジトリをインスタントにブラウズします.
- git-merge-tree(1)
-
インデックスまたは作業ツリーにに触れずに(without touching)マージを実行する.
- git-rerere(1)
-
マージの競合解決決定の記録を再利用する.
- git-show-branch(1)
-
ブランチとそのコミットを表示します.
- git-verify-commit(1)
-
コミットのGPG署名を確認します。.
- git-verify-tag(1)
-
タグのGPG署名を確認する.
- git-version(1)
-
Gitに関するバージョン情報を表示する.
- git-whatchanged(1)
-
各コミットが導入する差分とともにログを表示.
- gitweb(1)
-
Git Webインターフェイス(GitリポジトリのためのWebフロントエンド).
Interacting with Others(他者との交流)
これらのコマンドは、電子メールを利用したパッチを介して、他のSCMや人々と対話するためのものです。
- git-archimport(1)
-
GNU Arch リポジトリをGitにインポートします.
- git-cvsexportcommit(1)
-
単一のコミットをCVSチェックアウトにエクスポートします.
- git-cvsimport(1)
-
別の嫌われ者のSCMからあなたのデータを救難救助する.
- git-cvsserver(1)
-
Git用のCVSサーバーエミュレーター.
- git-imap-send(1)
-
標準入力からIMAPフォルダへパッチのコレクションを送信します.
- git-p4(1)
-
Perforceリポジトリからのインポートと、Perforceリポジトリへのsubmit.
- git-quiltimport(1)
-
quilt のパッチ・セットを現在のブランチに適用します.
- git-request-pull(1)
-
プルリクエスト文面生成(Generates a summary of pending changes).
- git-send-email(1)
-
パッチの集まりを電子メールとして送信します.
- git-svn(1)
-
SubversionリポジトリとGit間の双方向操作.
Reset, restore and revert
同様の名前の3つのコマンドがあります。それは git reset と git restore と git revert です。
-
git-revert(1) は、他のコミットによって行われた変更を元に戻す新しいコミットを作成することです。
-
git-restore(1) は、インデックスまたは別のコミットから作業ツリー内のファイルを復元することです。このコマンドはブランチを更新しません。このコマンドを使用して、別のコミットからインデックス内のファイルを復元することもできます。
-
git-reset(1) は、ブランチを更新し、ブランチにコミットを追加または削除するために先端ポインタが指し示す先端(tip)を移動させることです。この操作により、コミット履歴が変更されます。
gitrestoreと重複しますが、gitresetはインデックスを復元するためにも使用できます。
Low-level commands (plumbing)
Gitには独自の磁器コマンドレイヤーが含まれていますが、代替磁器コマンドの開発をサポートするには、その低レベルのコマンドで十分です。このような磁器コマンドの開発者は git-update-index(1) と git-read-tree(1) を読むことから始めるといいでしょう。
これらの低レベルコマンドへのインターフェイス(入力、出力、オプションのセット、セマンティクス)は、これらのコマンドが主にスクリプトで使用されるため、磁器レベルのコマンドよりもはるかに安定していることを意味します。 一方、磁器コマンドへのインターフェースは、エンドユーザーエクスペリエンスを向上させるために変更される可能性があります。
以下の説明では、低レベルのコマンドを、オブジェクト(リポジトリ、インデックス、作業ツリー内)を操作するコマンドと、オブジェクトに問い合わせて比較するコマンドと、リポジトリ間でオブジェクトと参照を移動するコマンドに、分けています。
Manipulation commands(操作コマンド)
- git-apply(1)
-
パッチをファイルやインデックスに適用します.
- git-checkout-index(1)
-
インデックスから作業ツリーにファイルをコピー.
- git-commit-graph(1)
-
Gitコミットグラフファイル(commit-graph file)の書き出しと検証(verify).
- git-commit-tree(1)
-
新しいコミットオブジェクトを作成します.
- git-hash-object(1)
-
オブジェクトIDを計算し、 オプションでファイルからオブジェクトを作成する.
- git-index-pack(1)
-
既存のパックされたアーカイブのパックインデックスファイル構築.
- git-merge-file(1)
-
3方向ファイルマージを実行する.
- git-merge-index(1)
-
マージが必要なファイルのマージを実行します.
- git-mktag(1)
-
追加の検証(extra validation)でタグ・オブジェクトを作成します.
- git-mktree(1)
-
ls-tree形式のテキストからツリーオブジェクトを構築する.
- git-multi-pack-index(1)
-
マルチ・パック・インデックスの書き出し・検証.
- git-pack-objects(1)
-
オブジェクトのパックされたアーカイブを作成する.
- git-prune-packed(1)
-
すでにパックファイルにある余分なオブジェクトを削除します.
- git-read-tree(1)
-
ツリー情報をインデックスに読み込みます.
- git-replay(1)
-
実験的(EXPERIMENTAL): 新たなベース上でコミット群をリプレイします。 ベア・リポジトリでも動きます。.
- git-symbolic-ref(1)
-
シンボリックrefの読み取り、変更、および削除.
- git-unpack-objects(1)
-
パックされたアーカイブからオブジェクトを取り出します.
- git-update-index(1)
-
作業ツリーのファイルの内容をインデックスに登録します.
- git-update-ref(1)
-
refに保存されているオブジェクト名を安全に更新します.
- git-write-tree(1)
-
現在のインデックスからツリーオブジェクトを作成します.
Interrogation commands(問合せコマンド)
- git-cat-file(1)
-
リポジトリ・オブジェクトの内容または詳細情報を提供.
- git-cherry(1)
-
上流でまだ適用されていないコミットを検索する.
- git-diff-files(1)
-
作業ツリーとインデックス内のファイルを比較します.
- git-diff-index(1)
-
ツリーを作業ツリーまたはインデックスと比較します.
- git-diff-pairs(1)
-
提供されたブロブ・ペアの内容とモードを比較.
- git-diff-tree(1)
-
2つのツリーオブジェクト間で、ブロブの内容とモードを比較します.
- git-for-each-ref(1)
-
参照各々に関する情報を出力します.
- git-for-each-repo(1)
-
リポジトリのリストに対してGitコマンドを実行します.
- git-get-tar-commit-id(1)
-
git-archiveを使用して作成されたアーカイブからコミットIDを抽出します.
- git-last-modified(1)
-
実験的(EXPERIMENTAL): ファイルが最後に変更されたときを表示.
- git-ls-files(1)
-
インデックスと作業ツリーのファイルに関する情報を表示する.
- git-ls-remote(1)
-
リモートリポジトリの参照を一覧表示する.
- git-ls-tree(1)
-
ツリーオブジェクトの内容を一覧表示します.
- git-merge-base(1)
-
マージのために可能な限り良い共通の祖先を見つけます.
- git-name-rev(1)
-
指定のリビジョンのシンボリック名を検索します.
- git-pack-redundant(1)
-
重複したパック・ファイルを探す.
- git-repo(1)
-
リポジトリーに関する情報を取得.
- git-rev-list(1)
-
コミットオブジェクトを新しい順に一覧表示します.
- git-rev-parse(1)
-
パラメータを選択してもみもみします。.
- git-show-index(1)
-
パックされたアーカイブインデックスを表示する.
- git-show-ref(1)
-
ローカルリポジトリ内の参照を一覧表示します.
- git-unpack-file(1)
-
ブロブの内容を含む一時(temporary)ファイルを作成します.
- git-var(1)
-
Git論理変数を表示します.
- git-verify-pack(1)
-
パックされたGitアーカイブファイルを検証する.
一般に、問い合わせコマンドは作業ツリー内のファイルには影響しません。
Syncing repositories(リポジトリの同期)
- git-daemon(1)
-
Gitリポジトリ用のほんまにシンプルなサーバー.
- git-fetch-pack(1)
-
別のリポジトリから不足しているオブジェクトを受け取ります.
- git-http-backend(1)
-
Git over HTTP のサーバー側実装.
- git-send-pack(1)
-
Gitプロトコルを介してオブジェクトを別のリポジトリにプッシュする.
- git-update-server-info(1)
-
ダムサーバー(dumb servers)を支援するための補助情報ファイル(auxiliary info file)を更新する.
以下は、上記で使用されるヘルパーコマンドです。エンドユーザーは通常、これらを直接使用することはありません。
- git-http-fetch(1)
-
HTTPでリモートGitリポジトリからダウンロード.
- git-http-push(1)
-
HTTP/DAV を介してオブジェクトを別のリポジトリにプッシュする.
- git-receive-pack(1)
-
リポジトリにプッシュされたものを受信します.
- git-shell(1)
-
Git専用SSHアクセス用の制限付きログイン・シェル.
- git-upload-archive(1)
-
アーカイブを git-archive に送り返す.
- git-upload-pack(1)
-
パックされたオブジェクトをgit-fetch-packに送り返す.
Internal helper commands(内部ヘルパーコマンド)
これらは、他のコマンドで使用される内部ヘルパーコマンドです。エンドユーザーは通常、これらを直接使用することはありません。
- git-check-attr(1)
-
gitattributes情報を表示.
- git-check-ignore(1)
-
gitignoreや除外ファイルのデバッグ.
- git-check-mailmap(1)
-
連絡先(contacts)の、正式な名前と電子メールアドレスを表示.
- git-check-ref-format(1)
-
参照名が整形式であることを確認します.
- git-column(1)
-
データを複数列表示する.
- git-credential(1)
-
ユーザー資格情報の取得と保存.
- git-credential-cache(1)
-
パスワードを一時的にメモリに保存するヘルパー.
- git-credential-store(1)
-
資格情報をディスクに保存するヘルパー.
- git-fmt-merge-msg(1)
-
マージ・コミット・メッセージを生成します.
- git-hook(1)
-
git のフック達を実行.
- git-interpret-trailers(1)
-
コミットメッセージの構造化情報を追加またはパースします.
- git-mailinfo(1)
-
単一の電子メールメッセージからパッチと作成者を抽出します.
- git-mailsplit(1)
-
簡易 UNIX mbox 分割プログラム.
- git-merge-one-file(1)
-
git-merge-indexで使用する標準のヘルパープログラム.
- git-patch-id(1)
-
パッチの一意のIDを計算します.
- git-sh-i18n(1)
-
シェルスクリプトのためのGit用i18nセットアップコード.
- git-sh-setup(1)
-
一般的なGitシェルスクリプトのセットアップコード.
- git-stripspace(1)
-
不要な空白(whitespace)を削除します.
Guides(ガイド)
以下のドキュメントページ群は、Gitの概念に関するガイドです。
- gitcore-tutorial(7)
-
Git 開発者のための Git コア・チュートリアル.
- gitcredentials(7)
-
Gitにユーザー名とパスワードを提供する.
- gitcvs-migration(7)
-
CVSユーザー向けGit.
- gitdiffcore(7)
-
diff出力の微調整.
- giteveryday(7)
-
Git日常利用に役立つ最小限のコマンドセット.
- gitfaq(7)
-
Gitの使用に関するよくある質問(FAQ).
- gitglossary(7)
-
Git用語集.
- gitnamespaces(7)
-
Git名前空間.
- gitremote-helpers(7)
-
リモートリポジトリと対話するためのヘルパープログラム群.
- gitsubmodules(7)
-
あるリポジトリを別のリポジトリ内にマウントする.
- gittutorial(7)
-
Git入門.
- gittutorial-2(7)
-
Git入門パート2.
- gitworkflows(7)
-
Gitを使った推奨ワークフローの概要.
Repository, command and file interfaces
このドキュメントでは、ユーザーが直接操作する必要があるリポジトリとコマンド・インターフェイスについて説明します。 詳細については、 git-help(1) の --user-formats を参照してください(訳注: --user-interfaces の誤記?)。
- gitattributes(5)
-
パスごとの属性の定義.
- gitcli(7)
-
Gitコマンドラインのインターフェイスと規則.
- githooks(5)
-
Gitで使われるフック.
- gitignore(5)
-
無視する、意図的に追跡しないファイルを指定します.
- gitmailmap(5)
-
作者(author)/コミッター(committer) および/または 電子メールアドレス(E-Mail addresses)をマップします.
- gitmodules(5)
-
サブモジュール・プロパティの定義.
- gitrepository-layout(5)
-
Gitリポジトリの間取り.
- gitrevisions(7)
-
Gitのリビジョンと範囲を指定する.
File formats, protocols and other developer interfaces
このドキュメントでは、ファイル形式や通信プロトコルやの他の git 開発者インターフェイスについて説明します。 git-help(1) の --developer-interfaces を参照してください。
- gitformat-bundle(5)
-
バンドル・ファイル形式.
- gitformat-chunk(5)
-
チャンク・ベースのファイル形式.
- gitformat-commit-graph(5)
-
Git コミット・グラフ形式.
- gitformat-index(5)
-
Git インデックス形式.
- gitformat-pack(5)
-
Gitパック形式.
- gitformat-signature(5)
-
Git 暗号署名形式.
- gitprotocol-capabilities(5)
-
プロトコル v0 と v1 の機能.
- gitprotocol-common(5)
-
各種プロトコルの共通事項.
- gitprotocol-http(5)
-
Git HTTPベース・プロトコル.
- gitprotocol-pack(5)
-
パックの、インターネットを介した(over-the-wire)転送方法.
- gitprotocol-v2(5)
-
Git通信プロトコル・バージョン 2.
Configuration Mechanism(構成メカニズム)
Gitは、単純なテキスト形式を使用して、リポジトリごとおよびユーザーごとのカスタマイズを保存します。 このような構成ファイルは以下のようになります:
#
# A '#' or ';' character indicates a comment.
#
; core variables
[core]
; Don't trust file modes
filemode = false
; user identity
[user]
name = "Junio C Hamano"
email = "gitster@pobox.com"
さまざまなコマンドが構成ファイルから読み取られ、それに応じて操作が調整されます。構成メカニズムのリストと詳細については、 git-config(1) を参照してください。
Identifier Terminology(識別子の用語)
- <object>
-
任意のタイプのオブジェクトのオブジェクト名を現します。
- <blob>
-
BLOBオブジェクト名を現します。
- <tree>
-
ツリーオブジェクト名を示します。
- <commit>
-
コミットオブジェクト名を示します。
- <tree-ish>
-
ツリーまたはコミットまたはタグオブジェクト名を示します。 <tree-ish> 引数を取るコマンドは、最終的には <tree> オブジェクトを操作したいので、 <tree> を指す <commit> オブジェクトと <tag> オブジェクトは自動的に逆参照(dereference)されます。(訳注: tree-ish;ツリーっぽいナニかの意)
- <commit-ish>
-
コミットまたはタグオブジェクト名を示します。 <commit-ish> 引数を取るコマンドは、最終的には <commit> オブジェクトを操作したいので、 <commit> を指す <tag>オブジェクトを自動的に逆参照します。
- <type>
-
オブジェクトタイプが必要であることを示します。 現在、
blobまたはtreeまたはcommitまたはtagのいずれかです。 - <file>
-
ファイル名を示します。ほとんどの場合、
GIT_INDEX_FILEが記述するツリー構造のルートを基準にしています。
Symbolic Identifiers
<object> を受け入れるGitコマンドでは、以下の記号表記も使用できます:
- HEAD
-
現在のブランチのヘッドを現します。
- <tag>
-
有効なタグ名(つまり
refs/tags/<tag> 参照)。 - <head>
-
有効なhead名(つまり
refs/heads/<head> 参照)。
オブジェクト名のスペルのより完全なリストについては、 gitrevisions(7) の「SPECIFYING REVISIONS」セクションを参照してください。
File/Directory Structure
gitrepository-layout(5) 文書を参照してください。
各フックの詳細については githooks(5) をご覧下さい。
高レベルのSCMは、 $GIT_DIR で追加情報を提供および管理する場合があります。
Terminology(用語)
gitglossary(7) を参照してください。
Environment Variables(環境変数)
Various Git commands pay attention to environment variables and change their behavior. The environment variables marked as "Boolean" take their values the same way as Boolean valued configuration variables, i.e., "true", "yes", "on" and positive numbers are taken as "yes", while "false", "no", "off", and "0" are taken as "no".
以下の環境変数があります:
System
-
HOME -
Specifies the path to the user’s home directory. On Windows, if unset, Git will set a process environment variable equal to:
$HOMEDRIVE$HOMEPATHif both$HOMEDRIVEand$HOMEPATHexist; otherwise$USERPROFILEif$USERPROFILEexists.
The Git Repository
これらの環境変数は、「すべての」コアGitコマンドに適用されます。 注意: これらはGitの上位にあるSCMSによって 使用/オーバーライド される可能性があることに注意してください。したがって、外部のフロントエンドを使用する場合は注意が必要です。
-
GIT_INDEX_FILE -
この環境変数は、 代替インデックス・ファイルを指定します。 指定しない場合は、 デフォルトの
$GIT_DIR/indexが使用されます。 -
GIT_INDEX_VERSION -
この環境変数は、 インデックス・ファイルを書き出すときにどのインデックス・バージョンが使用されるかを指定します。 既存のインデックス・ファイルには影響しません。 デフォルトでは、 インデックス・ファイル・バージョン 2 または 3 が使用されます。 詳細については、git-update-index(1) を参照してください。
-
GIT_OBJECT_DIRECTORY -
オブジェクトストレージディレクトリがこの環境変数を介して指定されている場合、 sha1 ディレクトリがその下に作成されます。それ以外の場合は、デフォルトの
$GIT_DIR/objectsディレクトリが使用されます。 -
GIT_ALTERNATE_OBJECT_DIRECTORIES -
Gitオブジェクトは不変であるため、古いオブジェクトを共有の読み取り専用ディレクトリにアーカイブできます。この変数は、Gitオブジェクトの検索に使用できるGitオブジェクトディレクトリの
:で区切られた(Windowsでは ; で区切られた)リストを指定します。新しいオブジェクトはこれらのディレクトリに書き込まれません。" (二重引用符;\x22)で始まるエントリは、Cスタイルの引用符で囲まれたパスとして解釈され、先頭と末尾の二重引用符が削除され、バックスラッシュ(
\\x5c);のエスケープが尊重されます。たとえば、値 "path-with-\"-and-:-in-it":vanilla-path にはpath-with-"-and-:-in-it とvanilla-pathの2つのパスがあります。 -
GIT_DIR -
GIT_DIR環境変数が設定されている場合、リポジトリのベースにデフォルトの.gitの代わりに使用するパスを指定します。--git-dirコマンドラインオプションもこの値を設定します。 -
GIT_WORK_TREE -
作業ツリーのルートへのパスを設定します。 これは、
--work-treeコマンドラインオプションと core.worktree 構成変数でも制御できます。 -
GIT_NAMESPACE -
Git名前空間(Git namespace)を設定します。詳細については、 gitnamespaces(7) を参照してください。
--namespaceコマンドラインオプションもこの値を設定します。 -
GIT_CEILING_DIRECTORIES -
これは、コロン(
:)で区切られた絶対パスのリストである必要があります。 設定されている場合、 Git がリポジトリーのディレクトリを探す際に移動してはいけないディレクトリのリストです(遅いネットワーク・ディレクトリの除外に役立ちます)。 現在の作業ディレクトリや、 コマンドラインまたは環境で設定されている GIT_DIR は除外されません。 通常、 Gitはこのリストのエントリを読み取り、 現在のディレクトリと比較するために、 存在する可能性のあるシンボリックリンクを解決する必要があります。 ただし、 このアクセスが遅い場合、 リストに空のエントリを追加して、 後続のエントリがシンボリック・リンクではなく、 解決する必要がないことをGitに通知できます。 例:GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink -
GIT_DISCOVERY_ACROSS_FILESYSTEM -
.gitリポジトリディレクトリがないディレクトリで実行すると、Gitはそれより親のディレクトリでそのようなディレクトリを見つけて作業ツリーの最上位を見つけようとしますが、デフォルトではファイルシステムの境界を越えません。このブール値型環境変数をtrueに設定して、ファイルシステムの境界で停止しないようにGitに指示できます。GIT_CEILING_DIRECTORIESと同様に、これはGIT_DIRまたはコマンドラインで設定された明示的なリポジトリディレクトリには影響しません。 -
GIT_COMMON_DIR -
この変数にパスが設定されている場合、通常は $GIT_DIR にある非ワークツリーファイルが、代わりにこのパスから取得されます。HEADやインデックスなどのワークツリー固有のファイルは $GIT_DIR から取得されます。詳細については、 gitrepository-layout(5) と git-worktree(1) を参照してください。この変数は GIT_INDEX_FILE や GIT_OBJECT_DIRECTORY などの他のパス変数よりも優先順位が低くなります。
-
GIT_DEFAULT_HASH -
この変数が設定されている場合、新しいリポジトリのデフォルトのハッシュ・アルゴリズムはこの値に設定されます。クローン作成時にはこの値は無視され、常にリモート・リポジトリの設定が使用されます。デフォルトは
sha1です。 git-init(1) の--object-formatを参照してください。 -
GIT_DEFAULT_REF_FORMAT -
この変数が設定されている場合、 新しいリポジトリーのデフォルト参照バックエンド形式がこの値に設定されます。 デフォルトは
filesです。 詳細については、 git-init(1)の--ref-format参照。
Git Commits
-
GIT_AUTHOR_NAME -
コミットまたはタグオブジェクトを作成するとき、またはreflogを書き込むときに、作者IDで使用される、人間が読める名前。
user.nameとauthor.nameの構成設定を上書きします。 -
GIT_AUTHOR_EMAIL -
コミットまたはタグオブジェクトを作成するとき、またはreflogを書き込むときに作者IDで使用される電子メールアドレス。
user.emailとauthor.emailの設定を上書きします。 -
GIT_AUTHOR_DATE -
commitまたはtagオブジェクトを作成するとき、またはreflogを書き込むときに作者IDに使用される日付。有効な形式については、 git-commit(1) を参照してください。
-
GIT_COMMITTER_NAME -
コミットオブジェクトまたはタグオブジェクトを作成するとき、またはreflogを書き込むときに、コミッターIDで使用される、人間が読める形式の名前。
user.nameとcommitter.nameの設定を上書きします。 -
GIT_COMMITTER_EMAIL -
コミットまたはタグオブジェクトを作成するとき、またはreflogを書き込むときに作者IDで使用される電子メールアドレス。
user.emailとcommitter.emailの設定を上書きします。 -
GIT_COMMITTER_DATE -
コミットオブジェクトまたはタグオブジェクトを作成するとき、またはreflogを書き込むときにコミッターIDに使用される日付。有効な形式については、 git-commit(1) を参照してください。
-
EMAIL -
他の関連する環境変数または構成設定が設定されていない場合に、作者とコミッターのIDで使用される電子メールアドレス。
Git Diffs
-
GIT_DIFF_OPTS -
有効な設定は、統一された差分(unified diff)が作成されたときに表示されるコンテキスト行の数を設定するための
--unified=?? または-u?? だけです。これは、Git diff コマンドラインで渡される-Uまたは--unifiedのオプション値よりも優先されます。 -
GIT_EXTERNAL_DIFF -
環境変数
GIT_EXTERNAL_DIFFが設定されている場合、それによって指定されたプログラムが呼び出されてdiffが生成され、Gitは組み込みのdiff機構を使用しません。 追加または削除または変更されたパスの場合、GIT_EXTERNAL_DIFFは以下の7つのパラメーターで呼び出されます:path old-file old-hex old-mode new-file new-hex new-modeここで:
- <old|new>-file
-
GIT_EXTERNAL_DIFF が <old|new> の内容を読み取るために使用できるファイルです
- <old|new>-hex
-
16進40桁のSHA-1ハッシュです。
- <old|new>-mode
-
8進数で表現されたファイルモードです。
ファイル・パラメータは、ユーザーの作業ファイル(たとえば "git-diff-files" の
new-file)、または/dev/null(たとえば、新しいファイルが追加されたときのold-file)、または一時ファイル(たとえば インデックスのold-file) を指し示す事ができます。GIT_EXTERNAL_DIFFは、一時ファイルの削除(unlink)を心配する必要はありません。一時ファイルはGIT_EXTERNAL_DIFFの指定したプログラムの呼び出しが終了すると削除されます。パスがマージされていない場合、
GIT_EXTERNAL_DIFFは1つのパラメーター <path> で呼び出されます。パス
GIT_EXTERNAL_DIFFが呼び出されるたびに、GIT_DIFF_PATH_COUNTERとGIT_DIFF_PATH_TOTALの2つの環境変数が設定されます。 -
GIT_EXTERNAL_DIFF_TRUST_EXIT_CODE -
このブール型環境変数が true に設定されている場合、
GIT_EXTERNAL_DIFFコマンドは、 入力ファイルが等しいとみなす場合は exit コード 0 を、 異なるとみなす場合は exitコード 1 を返すことが期待されます。 これはdiff(1) と同様です。 false に設定されている場合(これがデフォルトです)、 コマンドは等しいかどうかに関係なく exit コード 0 を返すことが期待されます。 それ以外の exit コードが返された場合、 Git は致命的なエラーとして扱います。 -
GIT_DIFF_PATH_COUNTER -
パスごとに1ずつインクリメントされる1で始まるカウンター。
-
GIT_DIFF_PATH_TOTAL -
パスの総数。
other
-
GIT_MERGE_VERBOSITY -
再帰的マージ戦略(recursive merge strategy)によって表示される出力の量を制御する数値。 merge.verbosity をオーバーライドします。 git-merge(1) を参照してください
-
GIT_PAGER -
この環境変数は
$PAGERをオーバーライドします。 空の文字列または値 "cat"に設定されている場合、Gitはページャーを起動しません。 git-config(1) のcore.pagerオプションも参照してください。 -
GIT_PROGRESS_DELAY -
A number controlling how many seconds to delay before showing optional progress indicators. Defaults to 1.
-
GIT_EDITOR -
この環境変数は、
$EDITORと$VISUALをオーバーライドします。インタラクティブモードでエディタを起動するときに、いくつかのGitコマンドで使用されます。 git-var(1) と git-config(1) のcore.editorオプションも参照してください。 -
GIT_SEQUENCE_EDITOR -
この環境変数は、インタラクティブリベース(interactive rebase)のtodoリストを編集するときに、構成されたGitエディタをオーバーライドします。 git-rebase(1) と git-config(1) の
sequence.editorオプションも参照してください。 -
GIT_SSH -
GIT_SSH_COMMAND -
これらの環境変数のいずれかが設定されている場合、
gitfetchとgitpushは、リモートシステムに接続する必要があるときに、sshの代わりに指定されたコマンドを使用します。設定されたコマンドに渡されるコマンドラインパラメータは、 ssh.variant によって決定されます。詳細については、 git-config(1) のssh.variantオプションを参照してください。$GIT_SSH_COMMANDは$GIT_SSHよりも優先され、シェルによって解釈されます。これにより、追加の引数を含めることができます。 一方、$GIT_SSHは、プログラムへのパスである必要があります(追加の引数が必要な場合は、ラッパーシェルスクリプトにすることができます)。通常、個人の
.ssh/configファイルを使用して必要なオプションを設定する方が簡単です。詳細については、あなたのお手元のsshのドキュメントを参照してください。 -
GIT_SSH_VARIANT -
この環境変数が設定されている場合、
GIT_SSH/` GIT_SSH_COMMAND`/core.sshCommandが、 OpenSSH または plink または tortoiseplink のいずれを参照しているかどうかの自動検出をオーバーライドします。 この変数は、 同じ目的を持つ設定ssh.variantをオーバーライドします。 -
GIT_SSL_NO_VERIFY -
この環境変数を任意の値に設定してエクスポートすると、 HTTPS 経由でフェッチまたはプッシュするときに SSL 証明書を検証しないよう Git に指示します。
-
GIT_ATTR_SOURCE -
gitattributes の読み取り元となるツリーっぽいのを設定します。
-
GIT_ASKPASS -
この環境変数が設定されている場合、パスワードまたはパスフレーズを取得する必要があるGitコマンド(HTTPまたはIMAP認証など)は、コマンドライン引数として適切なプロンプトを使用してこのプログラムを呼び出し、そのプログラムの標準出力からパスワードを読み取ります。 git-config(1)の
core.askPassオプションも参照してください。 -
GIT_TERMINAL_PROMPT -
このブール値環境変数が false に設定されている場合、gitは端末でプロンプトを表示しません(たとえば、HTTP認証の問い合わせする場合)。
-
GIT_CONFIG_GLOBAL -
GIT_CONFIG_SYSTEM -
グローバルまたはシステムレベルの構成ファイルからではなく、指定されたファイルから構成を取得します。
GIT_CONFIG_SYSTEMが設定されている場合、ビルド時に定義されたシステム構成ファイル(通常は/etc/gitconfig)は読み取られません。同様に、GIT_CONFIG_GLOBALが設定されている場合、$HOME/.gitconfigも$XDG_CONFIG_HOME/git/configも読み取られません。/dev/nullに設定すると、それぞれのレベルの構成ファイルの読み取りをスキップできます。 -
GIT_CONFIG_NOSYSTEM -
システム全体の
$(prefix)/etc/gitconfigファイルからの設定の読み取りをスキップするかどうか。 このブール値の環境変数を$HOMEや$XDG_CONFIG_HOMEと一緒に使用することで、 気難しい(picky)スクリプトに対応可能な環境を作成することができます。また、これを true に設定することで、バグのある/etc/gitconfigファイルを使用することを一時的に回避し、十分な権限を持つ人が修正するまで待つこともできます。 -
GIT_FLUSH -
このブール値環境変数が true に設定されている場合、
gitblame(インクリメンタルモード)、gitrev-list、gitlog、gitcheck-attr、gitcheck-ignoreなどのコマンドは、 各レコードがフラッシュされた後に出力ストリームを強制的にフラッシュします。 この変数が false に設定されている場合、 これらのコマンドの出力は、完全にバッファリングされた入出力を使用して実行されます。 この環境変数が設定されていない場合、 Gitは、標準出力がファイルにリダイレクトされているように見えるかどうかに基づいて、 バッファリングするか、またはレコード指向のフラッシュを選択します。 -
GIT_TRACE -
一般的なトレースメッセージを有効にします。例えば、エイリアス拡張や、組み込みコマンド実行や、外部コマンド実行 においてです。
この変数が
1または2またはtrueに設定されている場合(比較では英大文字小文字は区別されません)、トレースメッセージがstderrに出力されます。変数が2より大きく10より小さい整数値(訳注:つまり 2 < 変数 < 10)に設定されている場合、(厳密には、)Gitはこの値を、開いているファイルデスクリプターとして解釈し、トレースメッセージをこのファイルデスクリプターに書き込もうとします。
または、 変数が絶対パス(
/文字で始まる)に設定されている場合、 Gitはこれをファイル・パスとして解釈し、 トレース・メッセージをそのファイルに追加しようとします。変数の設定を解除(unset)するか、空(empty) または
0またはfalse(英大文字小文字を区別しない)に設定すると、トレースメッセージが無効になります。 -
GIT_TRACE_FSMONITOR -
ファイルシステムモニター拡張機能(filesystem monitor extension)のトレースメッセージを有効にします。使用可能なトレース出力オプションについては、
GIT_TRACEを参照してください。 -
GIT_TRACE_PACK_ACCESS -
任意のパックへのすべてのアクセスに対してトレースメッセージを有効にします。アクセスごとに、パックファイル名とパック内のオフセットが記録されます。これは、パック関連のパフォーマンスの問題のトラブルシューティングに役立つ場合があります。使用可能なトレース出力オプションについては、
GIT_TRACEを参照してください。 -
GIT_TRACE_PACKET -
指定のプログラムに対して送受信されるべてのパケットのトレース・メッセージを有効にします。 これは、 オブジェクト・ネゴシエーションまたはその他のプロトコルの問題のデバッグに役立ちます。 トレースは PACK で始まるパケットでオフになります(ただし、 以下の
GIT_TRACE_PACKFILEを参照してください)。 使用可能なトレース出力オプションについては、GIT_TRACEを参照してください。 -
GIT_TRACE_PACKFILE -
指定のプログラムによって送受信されるパック・ファイルのトレースを有効にします。 他のトレース出力とは異なり、 このトレースは生のまま出力されます: ヘッダーやバイナリデータのクォートはありません。 あなたはこれを端末に表示したり、 他のトレース出力と混合したりするのではなく、 ほぼ確実にファイル(たとえば、
GIT_TRACE_PACKFILE=/tmp/my.pack)に出力することを推奨します。注意: これは現在、クローンとフェッチのクライアント側にのみ実装されていることに注意してください。
-
GIT_TRACE_PERFORMANCE -
パフォーマンス関連のトレースメッセージを有効にします。例えば、各Gitコマンドの合計実行時間です。使用可能なトレース出力オプションについては、
GIT_TRACEを参照してください。 -
GIT_TRACE_REFS -
参照データベース(ref database)での操作のトレース・メッセージを有効にします。 使用可能なトレース出力オプションについては、
GIT_TRACEを参照してください。 -
GIT_TRACE_SETUP -
Gitがセットアップフェーズを完了した後、
.gitと作業ツリーと現在の作業ディレクトリを出力するトレースメッセージを有効にします。使用可能なトレース出力オプションについては、GIT_TRACEを参照してください。 -
GIT_TRACE_SHALLOW -
浅い(shallow)リポジトリの フェッチ/クローン のデバッグに役立つトレースメッセージを有効にします。使用可能なトレース出力オプションについては、
GIT_TRACEを参照してください。 -
GIT_TRACE_CURL -
gitトランスポートプロトコルのすべての着信および発信データ(descriptive information;説明情報を含む)のcurlフルトレースダンプを有効にします。これは、コマンドラインで curl
--trace-asciiを実行するのと似ています。使用可能なトレース出力オプションについては、GIT_TRACEを参照してください。 -
GIT_TRACE_CURL_NO_DATA -
curlトレースが有効になっている場合(上記の
GIT_TRACE_CURLを参照)、データをダンプしないでください(つまり、情報行とヘッダー(info lines and headers)のみをダンプします)。 -
GIT_TRACE2 -
「trace2」ライブラリからのより詳細なトレースメッセージを有効にします。
GIT_TRACE2からの出力は、人間が読みやすいように単純なテキストベースの形式です。この変数が
1または2またはtrueに設定されている場合(比較では英大文字小文字は区別されません)、トレースメッセージがstderrに出力されます。変数が2より大きく10より小さい整数値(訳注:つまり 2 < 変数 < 10)に設定されている場合、(厳密には、)Gitはこの値を、開いているファイルデスクリプターとして解釈し、トレースメッセージをこのファイルデスクリプターに書き込もうとします。
あるいは、変数が絶対パス(`/`文字で始まる)に設定されている場合、Gitはこれをファイルパスとして解釈し、トレースメッセージをそのファイルに追加しようとします。パスがすでに存在し、ディレクトリである場合、トレースメッセージは、SIDの最後のコンポーネントと(ファイル名の衝突を回避するための)オプションのカウンタに従って名前が付けられた、そのディレクトリ内のファイル(プロセスごとに1つ)に書き込まれます。
加えて、 変数が
af_unix:[<socket-type>:]<absolute-pathname> に設定されている場合、 Gitはパスを Unix ドメイン・ソケットとして開こうとします。 ソケット・タイプは、streamまたはdgramのいずれかです。変数の設定を解除(unset)するか、空(empty) または
0またはfalse(英大文字小文字を区別しない)に設定すると、トレースメッセージが無効になります。完全な詳細については Trace2 documentation を参照してください。
-
GIT_TRACE2_EVENT -
この設定は、ソフトウェア処理(machine interpretation)に適したJSONベースの形式で書き込みます。利用可能なトレース出力オプションについては
GIT_TRACE2を、詳細については Trace2 documentation を参照してください。 -
GIT_TRACE2_PERF -
GIT_TRACE2で利用可能なテキストベースのメッセージに加えて、この設定はネスト領域(nesting regions)を理解するための列ベース(column-based)のフォーマットを書き込みます。利用可能なトレース出力オプションについてはGIT_TRACE2を、完全な詳細については Trace2 documentation を参照してください。 -
GIT_TRACE_REDACT -
デフォルトでは、 トレースがアクティブ化されると、Git は クッキーと
Authorization:ヘッダーとProxy-Authorization:ヘッダーとパックファイル URI の値を編集します。 この編集を防ぐには、このブール値環境変数を false に設定します。 -
GIT_NO_REPLACE_OBJECTS -
この環境変数を設定してエクスポートすると、 Git に対して置換参照を無視し、 Git オブジェクトを置き換えないように指示します。
-
GIT_LITERAL_PATHSPECS -
このブール値環境変数を true に設定すると、Gitはすべてのパススペックをグロブパターンとしてではなく文字通りに処理します。たとえば、
GIT_LITERAL_PATHSPECS=1gitlog--'*.c' を実行すると、グロブ*.cが一致するパスではなく、パス*.cに接触するコミットが検索されます。リテラルパスをGitにフィードする場合(たとえば、以前にgitls-treeや--rawdiff output などによって与えられたパス)にこれが必要になる場合があります。 -
GIT_GLOB_PATHSPECS -
このブール値環境変数を true に設定すると、Gitはすべてのパススペックをグロブパターン(別名 グロブマジック(glob magic))として扱います。
-
GIT_NOGLOB_PATHSPECS -
このブール値環境変数を true に設定すると、Gitはすべてのパススペックをリテラル(別名 リテラルマジック(literal magic))として扱います。
-
GIT_ICASE_PATHSPECS -
このブール値環境変数を true に設定すると、Gitはすべてのパススペックの英大文字小文字を区別しないものとして扱います。
-
GIT_NO_LAZY_FETCH -
このブール型環境変数を true に設定すると、 Git に対してプロミサー・リモートから欠落しているオブジェクトを必要に応じて遅延取得しないように指示します。
-
GIT_REFLOG_ACTION -
参照(ref)が更新されると、reflogエントリが作成され、 参照の新旧の値に加えて、 参照が更新された理由(通常は参照を更新した高レベルコマンドの名前)を追跡します。 スクリプト化された磁器コマンドは、
git-sh-setupの set_reflog_action ヘルパー関数を使用して、 エンドユーザーがトップレベルコマンドとして呼び出したときにその名前をこの変数に設定して、 reflogの本文(body)に記録できます。 -
GIT_REF_PARANOIA -
このブール値環境変数を false に設定すると、 参照(refs)のリストを繰り返し処理するときに、 壊れた参照 や 不適切な名前の参照を無視します。 通常、 Git はそのような参照をインクルードしようと試みますが、 一部の操作が失敗する可能性があります。 これは、 破壊的な操作(たとえば git-prune(1))を行う可能性がある場合、 壊れた参照を無視するよりも(そしてそれが指す履歴を保存する価値がないとするよりも)、 中断(abort)したほうが良いからです。 デフォルト値は
1です(つまり、 偏執狂的に全ての操作で(壊れた参照を)検出して中止(abort)するようにします)。 通常、 これを0に設定する必要はありませんが、 破損したリポジトリーからデータを回収しようとする場合に役立つ場合があります。 -
GIT_COMMIT_GRAPH_PARANOIA -
コミット・グラフからコミット・オブジェクトを読み込む際、 Git はオブジェクト・データベース内でそのオブジェクトの存在チェックを行います。 これは、 すでに削除されたコミットへの参照を含む古いコミットグラフの問題を回避するためですが、 パフォーマンスの低下を伴います。
デフォルトは "false" で、 これにより上記の振る舞いが無効になります。 これを "true" に設定すると、 存在チェックが有効になり、 パフォーマンスを犠牲にして、 古いコミットがコミットグラフから返されることはなくなります。
-
GIT_ALLOW_PROTOCOL -
コロン(
:)で区切られたプロトコルのリストが設定されている場合、protocol.allowがneverに設定され、リストされた各プロトコルでは、protocol.<name>.allowがalwaysに設定されているかのように振る舞います(既存の構成をオーバーライドします)。 詳細については、 git-config(1) のprotocol.allowの説明を参照してください。 -
GIT_PROTOCOL_FROM_USER -
user状態に構成されている fetch/push/clone によって使用されるプロトコルを妨げるには、 このブール値環境変数を false に設定します。これは、信頼できないリポジトリからの再帰的なサブモジュールの初期化を制限したり、信頼できない可能性のあるURLをgitコマンドにフィードするプログラムに役立ちます。詳細については、 git-config(1) を参照してください。 -
GIT_PROTOCOL -
内部使用のみ。 ワイヤー・プロトコルのハンドシェイクで使用されます。 オプションで値 <key>[
=<value>] を持つ、 コロン(:)で区切られたリストを含んでいます。 不明なキーと値は無視する必要があります。注意:この変数が一部のトランスポートを通過できるようにサーバーを構成する必要がある場合があることに注意してください。ローカルリポジトリ(つまり、
file://またはファイルシステムパス)にアクセスするとき、およびgit://プロトコルを介して自動的に伝播されます。 git-over-http の場合、ほとんどの構成で自動的に機能するはずですが、 git-http-backend(1) の説明を参照してください。 git-over-ssh の場合、クライアントがこの変数を渡すことができるようにsshサーバーを構成する必要がある場合があります(たとえば、OpenSSHでAcceptEnvGIT_PROTOCOLを使用することにより)。この構成はオプションです。変数が伝播されない場合、クライアントは元の "v0" プロトコルにフォールバックします(ただし、パフォーマンスの向上や機能の一部を見逃す可能性があります)。この変数は現在、cloneとfetchにのみ影響します。pushにはまだ使用されていません(ただし、将来的に使用される可能性があります)。
-
GIT_OPTIONAL_LOCKS -
この環境変数を false に設定すると、Gitは、ロックを取得する必要のあるオプションのサブ操作を実行せずに、要求された操作を完了します。たとえば、これにより、
gitstatusが副作用としてインデックスを更新するのを防ぐことができます。これは、リポジトリ上の他の操作とのロック競合を引き起こしたくない、バックグラウンドで実行されているプロセスに役立ちます。デフォルトは1です。 -
GIT_REDIRECT_STDIN -
GIT_REDIRECT_STDOUT -
GIT_REDIRECT_STDERR -
Windows専用: 環境変数で指定されたパスに 標準入力ハンドル/標準出力ハンドル/標準エラーハンドル をリダイレクトできるようにします。 これは、 マルチスレッド・アプリケーションで特に有用です。 なぜなら、
CreateProcess() を介して標準ハンドルを渡す標準的な方法では、 ハンドルを継承可能に設定する必要があり、 その結果、 すべての生成されたプロセスがそれらを継承し、 通常の Git 操作をブロックする可能性があるためです。 主な使用目的は、 名前付きパイプを使用して通信を行うことです(例:\\.\pipe\my-git-stdin-123)。2つの特別な値がサポートされています。
offは対応する標準ハンドルを閉じるだけです。そして、GIT_REDIRECT_STDERRが2>&1 の場合、標準エラーは標準出力と同じハンドルにリダイレクトされます。 -
GIT_PRINT_SHA1_ELLIPSIS(deprecated) -
(非推奨):
yesに設定されている場合、(省略形の)SHA-1値の後に省略記号を出力します。これは、切り離されたHEAD(detached HEAD)の表示(git-checkout(1))と生のdiff出力(git-diff(1))に影響します。上記の場合に省略記号を出力することはもはや適切であるとは見なされておらず、そのサポートは(この変数と一緒に)近い将来削除される可能性があります。 -
GIT_ADVICE -
0に設定すると、 すべてのアドバイス・メッセージが無効になります。 これらのメッセージは、 問題のある状況から抜け出すためのヒントや新機能を利用するための助けを人間のユーザーに提供することを目的としています。 ユーザーはadvice.*構成キーを使用して個々のメッセージを無効にできます。 これらのメッセージは、 Git プロセスを実行するツールにとっては邪魔になる可能性があるため、 この変数を使用してメッセージを無効にできます。 (--no-adviceグローバル・オプションも利用可能ですが、 古い Git バージョンではこのオプションが理解されない場合に失敗する可能性があります。 環境変数は、 理解されない Git バージョンでは無視されます。)
Discussion
以下の詳細については、 Git concepts chapter of the user-manual および gitcore-tutorial(7) から入手できます。
Gitプロジェクトは通常、最上位に .git サブディレクトリがある作業ディレクトリで構成されます。 .git ディレクトリには、プロジェクトの完全な履歴を表す圧縮オブジェクトデータベース、その履歴を作業ツリーの現在のコンテンツにリンクする「インデックス」ファイル、タグやブランチヘッドなど、その履歴への名前付きポインタが含まれています。
オブジェクトデータベースには、主に3つのタイプのオブジェクトが含まれています。ファイルデータを保持するブロブ(blob)。ディレクトリ階層を構築するためのブロブやその他のツリーを指すツリー(tree)。そしてコミット(commit)は、それぞれが単一のツリーといくつかの親コミットを参照します。
コミットは、他のシステムが「チェンジセット」または「バージョン」と呼ぶものと同等であり、プロジェクトの履歴のステップを表し、各親は直前のステップを表します。複数の親とのコミットは、それぞれ独立していた開発ラインの統合(マージ;merge)を表します。
すべてのオブジェクトは、その内容のSHA-1ハッシュによって名前が付けられ、通常は40桁の16進数の文字列として記述されます。このような名前はグローバルに一意です。コミットに至るまでの履歴全体は、そのコミットだけに署名することで保証できます。この目的のために、4番目のオブジェクトタイプであるタグ(tag)が提供されます。
最初に作成されたとき、オブジェクトは個々のファイルに保存されますが、効率を上げるために、後で「パックファイル」にまとめて圧縮される場合があります。
参照(ref(s))と呼ばれる名前の付いたポインタは、 履歴の中で重要なポイントを示します。 参照には、 オブジェクトの SHA-1 名または別の参照の名前(後者は「シンボリック参照」と呼ばれます)が含まれる場合があります。 refs/head/ で始まる名前の参照には、 開発中のブランチの最新のコミット(または先端(head))の SHA-1 名が含まれます。 関心のあるタグの SHA-1 名は refs/tags/ の下に保存されます。 `HEAD`という名前のシンボリック参照には、 現在チェックアウトされているブランチの名前が含まれます。
インデックスファイルは、すべてのパスのリストと、パスごとのブロブオブジェクトと属性のセットで初期化されます。ブロブオブジェクトは、現在のブランチの先端にあるファイルの内容を表します。属性(最終変更時刻、サイズなど)は、作業ツリー内の対応するファイルから取得されます。作業ツリーへのその後の変更は、これらの属性を比較することで見つけることができます。インデックスは新しいコンテンツで更新される可能性があり、新しいコミットはインデックスに保存されているコンテンツから作成される可能性があります。
インデックスは、特定のパス名の複数のエントリ(「ステージ」と呼ばれる)を格納することもできます。これらのステージは、マージの進行中に、マージされていないさまざまなバージョンのファイルを保持するために使用されます。
SECURITY
一部の設定オプションやフック・ファイルは、 Git に任意のシェル・コマンドを実行させる可能性があります。 設定やフックは git clone ではコピーされないため、 信頼できないコンテンツを含むリモート・リポジトリーをクローンしたり、 git log で調査したりすることは通常は安全です。
しかしながら、 信頼できないソースから取得した .git ディレクトリ(またはそれを取り囲む作業ツリー)内で Git コマンドを実行するのは安全ではありません。 その設定やフック内のコマンドは通常通りに実行されます。
デフォルトでは、 Git はリポジトリーがコマンドを実行しているユーザー以外の誰かに所有されている場合、 実行を拒否します。 詳細は git-config(1) の safe.directory の項目を参照してください。 これはマルチユーザー環境で保護に役立ちますが、 信頼できないソース(たとえば、 信頼できないソースから展開した zip ファイルや tarball)から取得したリポジトリーがあなた自身によって所有されている場合もあることに注意してください。 このような場合、 まず信頼できないリポジトリーを「サニタイズ」する必要があります。
信頼できない .git ディレクトリがある場合、 まず最初に git clone --no-local を使用してクリーンなコピーを取得する必要があります。 Git は、 クローンやフェッチのサーバー側を処理する upload-pack が実行するオプションやフックのセットを制限しますが、 upload-pack に対する攻撃の対象領域が広いため、 これにはある程度のリスクが伴います。 最も安全な方法は、 リポジトリーを非特権ユーザーとして提供することです(git-daemon(1) 、 SSH、 またはユーザー ID を変更する他のツールを使用)。 詳細は git-upload-pack(1) の SECURITY セクションの議論を参照してください。
FURTHER DOCUMENTATION
Gitの使用を開始するには、「description」セクションのリファレンスを参照してください。 以下は、初めてのユーザーにとっては、おそらく必要以上に詳細です。
Git concepts chapter of the user-manual と gitcore-tutorial(7) はどちらも、基盤となるGitアーキテクチャの概要を示しています。
おすすめの作業手順の概要については gitworkflows(7) を参照してください。
いくつかの便利な実例について howto 文書もご覧下さい。
Git内部については Git API documentation に記載されています。
CVSから移行するユーザーには gitcvs-migration(7) も読んで欲しいです。
Authors
GitはLinus Torvalds(リーナス トーバルズ)によって開始され、現在はJunio C Hamano(濱野 純)によって保守されています。Gitメーリングリスト <git@vger.kernel.org> から多くの貢献がありました。 https://openhub.net/p/git/contributors/summary は、貢献者のより完全なリストを提供します。
あなたが git.git 自体のクローンを持っている場合、 git-shortlog(1) と git-blame(1) の出力は、プロジェクトの特定の部分の作者を表示することができます。
Reporting Bugs
開発とメンテナンスが主に行われるGitメーリングリスト <git@vger.kernel.org> にバグを報告してください。そこにメッセージを送信するためにリストに登録する必要はありません。以前のバグレポートやその他の議論については、 https://lore.kernel.org/git メーリングリストアーカイブを参照してください。
セキュリティに関連する問題は、Gitセキュリティメーリングリスト <git-security@googlegroups.com> に非公開で投稿する必要があります。
SEE ALSO
GIT
Part of the git(1) suite