Git
Português (Brasil) ▾ Topics ▾ Latest version ▾ git-restore last updated in 2.44.0

NOME

git-restore - Restaura os arquivos das árvores de trabalho

RESUMO

git restore [<opções>] [--source=<árvore>] [--staged] [--worktree] [--] <pathspec>…​
git restore [<opções>] [--source=<árvore>] [--staged] [--worktree] --pathspec-from-file=<arquivo> [--pathspec-file-nul]
git restore (-p|--patch) [<opções>] [--source=<árvore>] [--staged] [--worktree] [--] [<pathspec>…​]

DESCRIÇÃO

Restaure os caminhos definidos na árvore de trabalho com algum conteúdo de uma fonte de restauração. Se um caminho for monitorado, porém não existir na fonte de restauração, ele será removido para coincidir com a fonte.

O comando também pode ser usado para restaurar o conteúdo no índice com a opção --staged, ou para restaurar a árvore de trabalho e o índice com --staged --worktree.

É predefinido que caso --staged seja utilizado, o conteúdo será restaurado a partir do HEAD, caso contrário, a partir do índice. Utilize a opção --source para restaurar a partir de um commit diferente.

Para as diferenças entre os três comandos consulte "Redefinir, restaurar e reverter" em git[1].

ESTE COMANDO É EXPERIMENTAL. O SEU COMPORTAMENTO PODE MUDAR.

OPÇÕES

-s <árvore>
--source=<árvore>

Restaure arquivos da árvore de trabalho com o conteúdo da árvore informada. É comum especificar a árvore de origem nomeando um commit, ramo ou tag associado com ela.

Caso não seja definido, o conteúdo será restaurado a partir de HEAD caso --staged seja informado, caso contrário, a restauração será a partir do índice.

-p
--patch

Selecione a diferença entre os blocos interativamente entre a origem da restauração e o local da restauração. Consulte a seção “Modo Interativo” do git-add[1] para aprender como operar o modo --patch.

Note que o comando --patch pode não aceitar nenhum pathspec e solicitará a restauração de todos os caminhos modificados.

-W
--worktree
-S
--staged

Especifica o local da restauração. É predefinido que caso nenhuma opção seja utilizada a árvore de trabalho será restaurada. Ao usar a opção --staged apenas a índice será restaurado. A utilização de ambas as opções faz a restauração de ambos.

-q
--quiet

Silencioso, suprima as mensagens de feedback. Implies --no-progress.

--progress
--no-progress

A condição do progresso é relatado no fluxo de erro predefinido ao estar conectado em um terminal, a menos que as opções --quiet seja utilizados. Esta opção ativa os relatórios de progresso, mesmo que não estejam anexados a um terminal, independentemente da opção --quiet.

--ours
--theirs

Ao restaurar os arquivos no índice da árvore de trabalho, utilize o estágio #2 (nosso) ou #3 (deles) para os caminhos que não foram mesclados.

Note que durante o git rebase e` git pull --rebase`, o nosso e o deles podem aparecer trocados. Para mais detalhes, consulte a explicação das mesmas opções em git-checkout[1].

-m
--merge

Ao restaurar os arquivos no índice da árvore de trabalho, recrie a mesclagem conflitante nos caminhos que ainda não foram mesclados.

--conflict=<estilo>

O mesmo que a opção --merge acima, porém altera a maneira como os blocos conflitantes são apresentados, ao substituir a variável de configuração merge.conflictStyle. Os valores possíveis são merge (predefinido) e diff3 (além do que é exibido através do estilo "merge", exibe os conteúdos originais).

--ignore-unmerged

Não aborte a operação ao restaurar os arquivos no índice da árvore de trabalho caso existam entradas que não foram mescladas e tão pouco as opções --ours, --theirs, --merge ou --conflict tenham sido utilizadas. Nada acontece com os caminhos das árvores de trabalho caso eles não tenham sido mesclados.

--ignore-skip-worktree-bits

É predefinido que no modo de averiguação esparsa, apenas atualize as entradas que coincidam com <pathspec> e os padrões esparsos no $GIT_DIR/info/sparse-checkout. Esta opção ignora os padrões esparsos e restaura incondicionalmente todos os arquivos que estejam no <pathspec>.

--recurse-submodules
--no-recurse-submodules

Caso o <pathspec> nomeie um submódulo ativo e o local da restauração incluir a árvore de trabalho, o submódulo será atualizado apenas caso esta opção seja utilizada. Neste caso, a sua árvore de trabalho será restaurada para o commit registrado no superprojeto e quaisquer alterações locais serão substituídas. Caso nada (ou a opção --no-recurse-submodules) seja utilizado, os submódulos que trabalham nas árvores não serão atualizados. Assim como git-submodule[1], isso faz com que o HEAD seja desanexando do submódulo.

--overlay
--no-overlay

No modo de sobreposição, o comando nunca remove os arquivos durante a restauração. No modo sem sobreposição, os arquivos rastreados que não aparecem na árvore --source são removidos para fazê-los coincidir exatamente com a <árvore>. A predefinição é sem sobreposição.

--pathspec-from-file=<arquivo>

O "pathspec" é passado com <arquivo> em vez dos argumentos da linha de comando. Caso o <arquivo> seja exatamente -, a entrada padrão será utilizada. Os elementos do "pathspec" são separados por caracteres de término de linha LF ou CR/LF. Os elementos do "pathspec" podem ser citados conforme explicado na variável de configuração core.quotePath (consulte git-config[1]). Consulte também opção --pathspec-file-nul e o global --literal-pathspecs.

--pathspec-file-nul

Só faz algum sentido caso seja utilizado junto com a opção --pathspec-from-file. Os elementos "pathspec" são separados com caracteres NUL e todos os outros caracteres são considerados de forma literal (incluindo as novas linhas e as citações).

--

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

<pathspec>…​

Limita os caminhos afetados pela operação.

Para mais detalhes sobre a sintaxe <pathspec>, veja a entrada pathspec em gitglossary[7].

EXEMPLOS

A sequência a seguir muda para o ramo master, reverte o` Makefile` para duas revisões anteriores, apaga o hello.c por engano e o recupera do índice.

$ git switch master
$ git restore --source master~2 Makefile  (1)
$ rm -f hello.c
$ git restore hello.c                     (2)
  1. tirar um arquivo de um outro commit

  2. restaurar o hello.c do índice

Caso queira restaurar TODOS os arquivos do código fonte C para que coincidam com a versão do índice, você pode usar

$ git restore '*.c'

Observe as aspas em torno de * .c. O arquivo hello.c também será restaurado ainda que não esteja mais na árvore de trabalho, pois o agrupamento dos arquivos é utilizado para coincidir com as entradas do índice (não na árvore de trabalho pelo shell).

Para restaurar todos os arquivos no diretório atual

$ git restore .

ou para restaurar todos os arquivos do cume da árvore de trabalho com a mágica do "pathspec" (consulte gitglossary[7])

$ git restore :/

Para restaurar um arquivo no índice que coincida com a versão em HEAD (é o mesmo que usar git-reset[1])

$ git restore --staged hello.c

ou você pode restaurar o índice e a árvore de trabalho (é o mesmo que usar git-checkout[1])

$ git restore --source=HEAD --staged --worktree hello.c

ou a forma abreviada que é mais prática, mas menos legível:

$ git restore -s@ -SW hello.c

GIT

Parte do conjunto git[1]

scroll-to-top