SYNOPSIS
gitcheckout-index[-u] [-q] [-a] [-f] [-n] [--prefix=<string>] [--stage=<number>|all] [--temp] [--ignore-skip-worktree-bits] [-z] [--stdin] [--] [<file>…]
DESCRIPTION
リストされた全てのファイルをインデックスから作業ディレクトリにコピーします(既存ファイルは上書きしません)。
OPTIONS
-
-u -
--index -
インデックスファイルのチェックアウトされたエントリの統計情報を更新します。
-
-q -
--quiet -
ファイルが存在する場合、またはインデックスにない場合は、静かにする
-
-f -
--force -
既存ファイルを強制的に上書きします
-
-a -
--all -
skip-worktree ビットが設定されているファイルを除いて、インデックス内のすべてのファイルをチェックアウトします(
--ignore-skip-worktree-bits参照)。 明示的なファイル名(explicit filenames)と一緒に使用することはできません。 -
-n -
--no-create -
新しいファイルをチェックアウトせず、すでにチェックアウトされているファイルのみを更新します。
-
--prefix=<string> -
ファイルを作成するときは、<string> (通常は末尾に/を含むディレクトリ名) をファイル名の先頭に追加します
-
--stage=<number>|all -
マージされていないエントリをチェックアウトする代わりに、名前付きステージからファイルをコピーします。 <number>は1〜3の間でなければなりません。 注:
--stage=allは自動的に--tempの指定を含みます。 -
--temp -
ファイルを作業ディレクトリにコピーする代わりに、その内容を一時ファイルに書き出します。 一時ファイル名とファイルの関係が stdout に出力されます(訳注:一時ファイルは当該作業ツリーの最上位ディレクトリに生成されます。 ファイルはカレントディレクトリ相対です)。
-
--ignore-skip-worktree-bits -
skip-worktree ビットが設定されたファイルを含め、すべてのファイルをチェックアウトします。
-
--stdin -
コマンドラインからパス(paths)のリストを取得する代わりに、 標準入力からパスのリストを読み取ります。 デフォルトでは、 パスはLFで区切られます(つまり、1行に1つのパスです)。
-
-z -
--stdinでのみ意味があります。 パスは、LFではなくNUL文字で区切られます。 -
-- -
これ以降の引数をオプションとして解釈しないでください。
フラグの順序は以前は重要でしたが、現在は重要ではありません。
git checkout-index を実行するだけでは何も起こりません。 あなたはたぶん git checkout-index -a がやりたかったのでしょう。 これを強制したい場合、 あなたは git checkout-index -f -a としなければなりません。
ここでは直感性は目標ではありません。再現性が目標です。 「引数がないということは作業がないことを意味する」という振る舞いの理由は、スクリプトから以下のことができるはずだからです:
$ find . -name '*.h' -print0 | xargs -0 git checkout-index -f --
これにより、既存のすべての *.h ファイルがキャッシュされたコピーに置き換えられます。 空のコマンドラインが「すべて」を意味するならば、これはインデックス内のすべてを強制的に更新してしまいますが、そうではありません。 ただし、 git checkout-index は --stdin を受け入れるため、以下のようにする方が高速です:
$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin
残りがファイル名になることがわかっている場合は、 -- を使用することをお勧めします。 たとえば、-a のファイル名での問題を防ぎます。 スクリプトでは -- を使用することをお勧めします。
Using --temp or --stage=all
「--temp または --stage= の使用」 --temp が使用されている場合(または --stage=all によって暗黙に指定されている場合)、 git checkout-index は、チェックアウトされているインデックスエントリごとに一時ファイルを作成します。 インデックスの統計情報は更新されません。 これらのオプションは、マージされていないファイルを外部のマージツールで処理できるように、呼び出し元がマージされていないすべてのエントリのすべてのステージを必要とする場合に役立ちます。
一時ファイル名と追跡されたパス名の関連付けを提供するリストがstdoutに書き込まれます。リスト形式には2つのバリエーションがあります:
. tempname TAB path RS
最初の形式は、 --stage が省略されているか、 --stage=all でない場合に使用される形式です。 フィールドtempnameはファイルの内容を保持する一時ファイル名であり、pathはインデックスで追跡されるパス名です。 要求されたエントリのみが出力されます。
. stage1temp SP stage2temp SP stage3tmp TAB path RS
2番目の形式は、 --stage=all の場合に使用される形式です。 3つのステージ一時フィールド(stage1temp、stage2temp、stage3temp)は、インデックスにステージエントリがある場合は一時ファイルの名前をリストし、ステージエントリがない場合は . をリストします。ステージ0のエントリしかないpathは、常に出力から省略されます。
どちらの形式でも、RS(レコード区切り文字)はデフォルトでは改行ですが、コマンドラインで -z が渡された場合はヌルバイトになります。一時ファイル名は常に安全な文字列(safe strings)で、ディレクトリ区切り文字や空白文字が含まれることはありません。pathフィールドは常に現在のディレクトリを基準にしており、一時ファイル名は常に最上位ディレクトリを基準にしています。
一時ファイルにコピーされるオブジェクトがシンボリックリンクである場合、リンクの内容は通常のファイルに書き込まれます。 この情報を利用するのはエンドユーザーまたは磁器コマンドの責任です。
EXAMPLES
- すでにチェックアウトされているファイルのみをupdateおよびrefreshするには
-
$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh -
gitcheckout-indexを使用して「ツリー全体をエクスポート」 -
プレフィックス機能により、基本的に
gitcheckout-indexを「ツリーとしてエクスポートする」機能として使用するのは簡単になります。目的のツリーをインデックスに読み込んで、以下の手順を実行します:$ git checkout-index --prefix=git-export-dir/ -agitcheckout-indexは、指定されたディレクトリにインデックスを「エクスポート」します。最後の
/は重要です。 エクスポートされた名前には、文字通り、指定された文字列が接頭辞として付けられます。 これを以下の例と比較してください。 - プレフィックス付きのファイルをエクスポート
-
$ git checkout-index --prefix=.merged- Makefileこれにより、現在キャッシュされている
Makefileのコピーが、ファイル.merged-Makefileにチェックアウトされます。
GIT
Part of the git(1) suite