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

NOME

git-apply - Aplica um patch aos arquivos e/ou ao índice

RESUMO

git apply [--stat] [--numstat] [--summary] [--check] [--index | --intent-to-add] [--3way]
	  [--apply] [--no-add] [--build-fake-ancestor=<arquivo>] [-R | --reverse]
	  [--allow-binary-replacement | --binary] [--reject] [-z]
	  [-p<n>] [-C<n>] [--inaccurate-eof] [--recount] [--cached]
	  [--ignore-space-change | --ignore-whitespace]
	  [--whitespace=(nowarn|warn|fix|error|error-all)]
	  [--exclude=<caminho>] [--include=<caminho>] [--directory=<root>]
	  [--verbose | --quiet] [--unsafe-paths] [--allow-empty] [<patch>…​]

DESCRIÇÃO

Lê o resultado do diff fornecido (ou seja, "um patch") e o aplica aos arquivos. Ao executar a partir de um subdiretório num repositório, os caminhos corrigidos fora do diretório são ignorados. Com a opção --index, o patch também é aplicado no índice, já com a opção --cached, o patch é apenas aplicado no índice. Sem estas opções, o comando aplica o patch apenas aos arquivos e não exige que eles estejam num repositório Git.

Este comando aplica a correção, mas não cria um commit. Use git-am[1] para criar commits a partir dos patches que foram gerados pelo comando git-format-patch[1] e/ou recebidos por e-mail.

OPÇÕES

<patch>…​

Os arquivos dos quais o patch deve ser lido. - pode ser usado para ler a partir da entrada predefinida.

--stat

Em vez de aplicar a correção, gere o diffstat. Desativa a opção "apply".

--numstat

Semelhante ao --stat, porém mostra a quantidade de linhas adicionadas e as linhas excluídas em notação decimal e o nome do caminho sem abreviação, tornando-o mais amigável ao computador. Para arquivos binários, produz dois - em vez de 0 0. Desativa a opção "apply".

--summary

Em vez de aplicar o patch, produza um resumo condensado das informações obtidas dos cabeçalhos estendidos do git diff, como criações, renomeações e as alterações do modo. Desativa a opção "apply".

--check

Em vez de aplicar o patch, verifique se o patch é aplicável à árvore de trabalho atual e/ou ao arquivo do índice e também detecta erros. Desativa a opção "apply".

--index

Aplica o patch ao índice e à árvore de trabalho (ou apenas verifica se ele se aplicaria corretamente em ambos caso --check esteja em uso). Observe que --index espera que as entradas do índice e as cópias da árvore de trabalho para os caminhos relevantes sejam idênticos (o seu conteúdo e seus metadados, como o modo arquivo, devem coincidir) e um erro será gerado caso não sejam mesmo que o patch seja aplicado corretamente no índice e na árvore de trabalho de forma isolada.

--cached

Aplica o patch apenas no índice sem afetar a árvore de trabalho. Caso a opção --check esteja em vigor, basta verificar se ele se aplicaria de forma limpa à entrada do índice.

--intent-to-add

Ao aplicar o patch apenas à árvore de trabalho, posteriormente, marque os novos arquivos que serão adicionados ao índice (consulte a opção --intent-to-add do comando git-add[1]). Essa opção é ignorada, a menos que seja executada num repositório Git e a opção --index não seja usada. Observe que --index pode estar implícito em outras opções, como --cached ou --3way.

-3
--3way

Tente a mesclagem de três vias se o patch registrar a identidade das bolhas às quais ele deve ser aplicado e se tivermos essas bolhas disponíveis localmente, possivelmente deixando os rotuladores de conflito nos arquivos da árvore de trabalho para o usuário resolver. Essa opção implica o uso da opção --index, a menos que a opção --cached seja usada, porém, é incompatível com a opção --reject. Quando usado com a opção --cached, todos os conflitos são deixados em estágios mais altos no cache.

--build-fake-ancestor=<arquivo>

A saída mais recente do git diff tem informações de índice incorporadas para cada bolha para ajudar a identificar a versão original à qual o patch se aplica. Quando esta opção é usada e se as versões originais das bolhas estiverem disponíveis localmente, cria um índice temporário contendo estas bolhas.

Quando uma alteração do modo puro é encontrado (que não contém as informações do índice), as informações são lidas a partir do índice atual.

-R
--reverse

Aplique o patch ao contrário.

--reject

Para fins de padronização, é predefinido que o comando git apply reprove o patch inteiro e não toque na árvore de trabalho quando alguns dos blocos não se aplicarem. Essa opção faz com que ele aplique as partes da correção que são aplicáveis e deixe os blocos rejeitados nos arquivos *.rej correspondentes.

-z

Quando o comando --numstat for utilizado, não una os nomes dos caminhos, porém utilize um formato legível para a máquina e utilize caracteres NUL para a terminação.

Sem esta opção, os nomes do caminho com caracteres "incomuns" são citados como explicado na variável de configuração core.quotePath (veja git-config[1]).

-p<n>

Remova os <n> componentes do caminho principal (separados por barras) dos caminhos diff tradicionais. Com -p2, um patch contra` a/dir/file` será aplicado diretamente ao file por exemplo. A predefinição é 1.

-C<n>

Certifique-se de que pelo menos <n> linhas do contexto circundante correspondam antes e após cada alteração. Quando houver menos linhas de contexto ao redor, todas elas devem corresponder. É predefinido que nenhum contexto seja ignorado.

--unidiff-zero

É predefinido que o comando git apply aguarde que a correção que está sendo aplicada seja um diff unificado com pelo menos uma linha de contexto. Isso oferece boas medidas de segurança, mas falha ao aplicar um diff gerado com a opção --unified=0. Para contornar estas verificações use a opção --unidiff-zero.

Observe que pelas razões expostas acima, a utilização de patches sem contexto é desencorajado.

--apply

Se você usar qualquer uma das opções marcadas como "Turns off apply" acima, o comando git apply lerá e produzirá as informações solicitadas sem realmente aplicar a correção. Use esta opção após aquelas opções para também aplicar a correção.

--no-add

Ao aplicar uma correção, ignore as adições feitas pela correção. Isso pode ser usado para extrair a parte comum entre dois arquivos, executando primeiro o diff neles e aplicando o resultado com essa opção, que aplicaria a parte de exclusão, mas não a parte da adição.

--allow-binary-replacement
--binary

Historicamente, não permitimos a aplicação de correções binárias sem uma permissão explícita do usuário, e esta opção foi a maneira de fazer isso. Atualmente, sempre permitimos a aplicação de correções binárias, portanto, isso não funciona.

--exclude=<path-pattern>

Não aplique as alterações nos arquivos que coincidam com o padrão do caminho informado. Pode ser útil ao importar os conjuntos dos patches onde você queira que determinados arquivos ou diretórios sejam excluídos.

--include=<path-pattern>

Aplique as alterações nos arquivos que coincidam com padrão do caminho informado. Pode ser útil ao importar os conjuntos dos patches, onde você queira incluir certos arquivos ou diretórios.

Quando os padrões --exclude e --include são usados, eles são examinados na ordem em que aparecem na linha de comando, e a primeira correspondência determina se uma correção para cada caminho será usado. É predefinido que uma correção para um caminho que não corresponda a nenhum padrão de inclusão/exclusão será usado caso não haja um padrão de inclusão na linha de comando e será ignorado se houver um padrão de inclusão.

--ignore-space-change
--ignore-whitespace

Ao aplicar uma correção, ignore as alterações no espaço vazio nas linhas de contexto, caso seja necessário. As linhas de contexto preservarão seus espaços vazios e não sofrerão correções, independentemente do valor da opção --whitespace. No entanto, as novas linhas ainda continuarão sendo corrigidas.

--whitespace=<ação>

Ao aplicar uma correção, detecte uma linha nova ou alterada que tenha erros de espaços vazios. O que é considerado um erro de espaço vazio é controlado pela configuração core.whitespace. É predefinido que são considerados erros de espaço em branco os espaços vazios à direita (incluindo as linhas que consistem apenas de espaços vazios) e um caractere de espaço que é imediatamente seguido por um caractere de tabulação dentro do recuo inicial da linha.

É predefinido que o comando gere mensagens de aviso, porém, aplique a correção. Quando o comando git-apply é usado para gerar estatísticas e não para aplicar uma correção, o padrão é o nowarn.

Você pode utilizar valores diferentes valores de controle para <ação>:

  • nowarn desativa o aviso de espaço à direita.

  • warn envia avisos para alguns desses erros, mas aplica o patch como está (predefinido).

  • fix gera os avisos para alguns destes erros e aplica o patch após corrigí-los (o strip é um sinônimo — a ferramenta costumava considerar apenas os caracteres de espaço como erros e a correção envolvia em removê-los, porém os Gits mais modernos fazem mais que isso).

  • error gera os avisos para alguns destes erros e se recusa a aplicar o patch.

  • error-all é semelhante ao error, porém exibe todos os erros.

--inaccurate-eof

Em determinadas circunstâncias, algumas versões do diff não detectam corretamente uma nova linha que esteja ausente no final do arquivo. Como resultado, os patches criados por estes programas diff não registram as linhas que estejam incompletas de forma correta. Esta opção adiciona a compatibilidade para que seja possível aplicar tais correções contornando este problema.

-v
--verbose

Relate o progresso para o stderr. É predefinido que apenas seja exibida uma mensagem do patch que está sendo aplicado atualmente. Esta opção fará com que as informações adicionais sejam relatadas.

-q
--quiet

Suprime a saída stderr. As mensagens sobre o estado do patch e o progresso não serão impressas.

--recount

Não confie nas contagens da linha nos cabeçalhos, deduza-as inspecionando o patch (após editar o patch sem ajustar os cabeçalhos adequadamente por exemplo).

--directory=<root>

Anexe <root> (raiz) em todos os nomes de arquivos. Caso "-p" também seja utilizado, ele é aplicado antes de anexar a nova raiz.

Por exemplo, um patch que seja utilizado para a atualização de a/git-gui.sh para b/git-gui.sh, pode ser aplicado ao arquivo na árvore de trabalho modules/git-gui/git-gui.sh ao executar o comando git apply --directory=modules/git-gui.

--unsafe-paths

É predefinido que um patch que tenha efeito fora da área de trabalho (uma árvore de trabalho controlada pelo Git ou um diretório de trabalho atual quando o "git apply" é utilizado como uma reposição do patch GNU) seja rejeitado como um erro (ou um dano).

Quando o comando git apply é usado como um "patch GNU melhor", o usuário pode usar a opção --unsafe-paths para substituir essa verificação de segurança. Essa opção não tem efeito quando a opção --index ou a opção --cached estiver em uso.

--allow-empty

Não retorne um erro para as correções que não contenham um diff. Isso inclui correções vazias e correções que tenham apenas um commit com texto.

CONFIGURAÇÃO

Warning

Missing pt_BR/includes/cmd-config-section-all.txt

See original version for this content.

Warning

Missing pt_BR/config/apply.txt

See original version for this content.

SUBMÓDULOS

Caso um patch contenha alguma alteração nos submódulos, o comando git apply tratará estas alterações da seguinte maneira.

Se a opção --index for usada (explícita ou implicitamente), os commits do submódulo deverão corresponder exatamente ao índice para que a correção seja aplicada. Se algum dos submódulos forem "check-out", esses "check-outs" serão completamente ignorados, ou seja, não é necessário que estejam atualizados ou limpos e não serão atualizados.

Caso o --index não seja utilizado, os commit dos submódulos no patch serão ignorados e somente a ausência ou a presença do subdiretório coincidente será verificado e (se possível) atualizado.

VEJA TAMBÉM

GIT

Parte do conjunto git[1]

scroll-to-top