Git
Português (Brasil) ▾ Topics ▾ Latest version ▾ git-checkout-index last updated in 2.24.0

NOME

git-checkout-index - Copia arquivos do índice para a árvore de trabalho

SINOPSE

git checkout-index [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]
		   [--stage=<number>|all]
		   [--temp]
		   [-z] [--stdin]
		   [--] [<file>…​]

DESCRIÇÃO

Copiará todos os arquivos listados do índice para o diretório de trabalho (não sobrescrevendo arquivos existentes).

OPÇÕES

-u
--index

atualiza informações estatísticas para as entradas com check-out no arquivo de índice.

-q
--quiet

fique quieto se os arquivos existirem ou não estiverem no índice

-f
--force

forças sobrescrevem arquivos existentes

-a
--all

verifica todos os arquivos no índice. Não pode ser usado junto com nomes de arquivos explícitos.

-n
--no-create

Não faça o checkout de novos arquivos, apenas atualize os arquivos já com check-out.

--prefixo=<string>

Ao criar arquivos, prefixos <string> (geralmente um diretório incluindo um trailing /)

--stage=<número>|todos

Em vez de verificar entradas não mescladas, copie os arquivos do estágio nomeado. <número> deve estar entre 1 e 3. Nota: --stage=all automaticamente implica --temp.

--temp

Em vez de copiar os arquivos para o diretório de trabalho, grave o conteúdo em arquivos temporários. As associações temporárias de nomes serão gravadas no stdout.

--stdin

Em vez de pegar a lista de caminhos da linha de comando, leia a lista de caminhos da entrada padrão. Os paths são separados por LF (ou seja, um caminho por linha) por padrão.

-z

Somente significativo com --stdin; caminhos são separados com caracteres NUL em vez de LF.

--

Não interprete mais argumentos como opções.

A ordem das bandeiras costumava importar, mas não mais.

Apenas fazendo git checkout-índice não faz nada. Você provavelmente quis dizer git checkout-índice -a. E se você quiser forçá-lo, você quer git checkout-index -f -a.

A intuição não é o objetivo aqui. Repetibilidade é. A razão para o comportamento "nenhum argumento não significa trabalho" é aquele dos scripts que você deveria fazer:

$ 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. But since git checkout-index accepts --stdin it would be faster to use:

$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin

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.

Using --temp or --stage=all

When --temp is used (or implied by --stage=all) git checkout-index will create a temporary file for each index entry being checked out. The index will not be updated with stat information. These options can be useful if the caller needs all stages of all unmerged entries so that the unmerged files can be processed by an external merge tool.

A listing will be written to stdout providing the association of temporary file names to tracked path names. The listing format has two variations:

  1. tempname TAB path RS

    The first format is what gets used when --stage is omitted or is not --stage=all. The field tempname is the temporary file name holding the file content and path is the tracked path name in the index. Only the requested entries are output.

  2. stage1temp SP stage2temp SP stage3tmp TAB path RS

    O segundo formato é o que é usado quando --stage=all. Os três campos temporários do estágio (stage1temp, stage2temp, stage3temp) listam o nome do arquivo temporário se houver uma entrada de estágio no índice ou . se não houver nenhuma entrada de estágio. Os paths que possuem apenas uma entrada de estágio 0 sempre serão omitidos da saída.

Em ambos os formatos, RS (o separador de registro) é a nova linha por padrão, mas será o byte nulo se -z foi passado na linha de comando. Os nomes de arquivos temporários são sempre sequências seguras; eles nunca conterão separadores de diretório ou caracteres de espaço em branco. O campo de caminho é sempre relativo ao diretório atual e os nomes de arquivos temporários são sempre relativos ao diretório de nível superior.

Se o objeto que está sendo copiado para um arquivo temporário for um link simbólico, o conteúdo do link será gravado em um arquivo normal. Cabe ao usuário final ou a Porcelana fazer uso desta informação.

EXEMPLOS

Para atualizar e atualizar somente os arquivos já verificados
$ git verificar-índice-n -f -a && git update-índice --ignorar-atualização --ausente
Usando git verificar-índice para "exportar uma árvore inteira"

A habilidade prefixo basicamente torna trivial o uso do git verificar-índice como uma função "exportar como árvore". Apenas leia a árvore desejada no índice e faça:

$ git verificar-índice - prefixo = git-exportar-dir / -a

git verificar-índice irá" exportar "o índice para o diretório especificado.

O final "/" é importante. O nome exportado é literalmente prefixado com a string especificada. Compare isso com o exemplo a seguir.

Exportar arquivos com um prefixo
$ git verificar-índice --prefixo=.merged- Fazer arquivo

Isto irá verificar a cópia atualmente em cache de Fazer arquivo no arquivo` .merged-Fazer arquivo`.

GIT

Parte do git[1] suite