Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.47.0 10/06/24
- 2.43.1 → 2.46.2 no changes
- 2.43.0 11/20/23
- 2.40.1 → 2.42.3 no changes
- 2.40.0 03/12/23
- 2.38.1 → 2.39.5 no changes
- 2.38.0 10/02/22
- 2.35.1 → 2.37.7 no changes
- 2.35.0 01/24/22
- 2.32.1 → 2.34.8 no changes
- 2.32.0 06/06/21
- 2.29.1 → 2.31.8 no changes
- 2.29.0 10/19/20
- 2.19.1 → 2.28.1 no changes
- 2.19.0 09/10/18
- 2.18.1 → 2.18.5 no changes
- 2.18.0 06/21/18
- 2.16.6 → 2.17.6 no changes
- 2.15.4 12/06/19
- 2.14.6 no changes
- 2.13.7 05/22/18
- 2.9.5 → 2.12.5 no changes
- 2.8.6 07/30/17
- 2.5.6 → 2.7.6 no changes
- 2.4.12 05/05/17
- 2.3.10 09/28/15
- 2.1.4 → 2.2.3 no changes
- 2.0.5 12/17/14
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 de0 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 caracteresNUL
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 aofile
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 é onowarn
.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 (ostrip
é 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 aoerror
, 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
parab/git-gui.sh
, pode ser aplicado ao arquivo na árvore de trabalhomodules/git-gui/git-gui.sh
ao executar o comandogit 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 See original version for this content. |
Warning
|
Missing 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.
GIT
Parte do conjunto git[1]