.\"Generated by db2man.xsl. Don't modify this, modify the source. .de Sh \" Subsection .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Ip \" List item .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .TH "GIT-CHECKOUT-INDEX" 1 "" "" "" .SH NAME git-checkout-index \- Copy files from the index to the working directory .SH "SYNOPSIS" .nf git\-checkout\-index [\-u] [\-q] [\-a] [\-f] [\-n] [\-\-prefix=] [\-\-stage=] [\-\-] ... .fi .SH "DESCRIPTION" Will copy all files listed from the index to the working directory (not overwriting existing files)\&. .SH "OPTIONS" .TP \-u|\-\-index update stat information for the checked out entries in the index file\&. .TP \-q|\-\-quiet be quiet if files exist or are not in the index .TP \-f|\-\-force forces overwrite of existing files .TP \-a|\-\-all checks out all files in the index\&. Cannot be used together with explicit filenames\&. .TP \-n|\-\-no\-create Don't checkout new files, only refresh files already checked out\&. .TP \-\-prefix= When creating files, prepend (usually a directory including a trailing /) .TP \-\-stage= Instead of checking out unmerged entries, copy out the files from named stage\&. must be between 1 and 3\&. .TP -- Do not interpret any more arguments as options\&. The order of the flags used to matter, but not anymore\&. Just doing git\-checkout\-index does nothing\&. You probably meant git\-checkout\-index \-a\&. And if you want to force it, you want git\-checkout\-index \-f \-a\&. Intuitiveness is not the goal here\&. Repeatability is\&. The reason for the "no arguments means no work" behavior is that from scripts you are supposed to be able to do: .IP $ find \&. \-name '*\&.h' \-print0 | xargs \-0 git\-checkout\-index \-f \-\- which will force all existing *\&.h files to be replaced with their cached copies\&. If an empty command line implied "all", then this would force\-refresh everything in the index, which was not the point\&. The \-\- is just a good idea when you know the rest will be filenames; it will prevent problems with a filename of, for example, \-a\&. Using \-\- is probably a good policy in scripts\&. .SH "EXAMPLES" .TP To update and refresh only the files already checked out .IP $ git\-checkout\-index \-n \-f \-a && git\-update\-index \-\-ignore\-missing \-\-refresh .TP Using git\-checkout\-index to "export an entire tree" The prefix ability basically makes it trivial to use git\-checkout\-index as an "export as tree" function\&. Just read the desired tree into the index, and do: .IP $ git\-checkout\-index \-\-prefix=git\-export\-dir/ \-agit\-checkout\-index will "export" the index into the specified directory\&. The final "/" is important\&. The exported name is literally just prefixed with the specified string\&. Contrast this with the following example\&. .TP Export files with a prefix .IP $ git\-checkout\-index \-\-prefix=\&.merged\- MakefileThis will check out the currently cached copy of Makefile into the file \&.merged\-Makefile\&. .SH "AUTHOR" Written by Linus Torvalds .SH "DOCUMENTATION" Documentation by David Greaves, Junio C Hamano and the git\-list \&. .SH "GIT" Part of the \fBgit\fR(7) suite