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

NOME

git-am - Aplica uma série de patches vindas de um mailbox (caixa de correio unix)

RESUMO

git am [--signoff] [--keep] [--[no-]keep-cr] [--[no-]utf8]
	 [--[no-]3way] [--interactive] [--committer-date-is-author-date]
	 [--ignore-date] [--ignore-space-change | --ignore-whitespace]
	 [--whitespace=<opção>] [-C<n>] [-p<n>] [--directory=<dir>]
	 [--exclude=<caminho>] [--include=<caminho>] [--reject] [-q | --quiet]
	 [--[no-]scissors] [-S[<keyid>]] [--patch-format=<formato>]
	 [(<mbox> | <Maildir>)…​]
git am (--continue | --skip | --abort | --quit | --show-current-patch[=(diff|raw)])

DESCRIÇÃO

Divide as mensagens de correio em um mailbox dentro das mensagens do registro log do commit, as informações de autoria, os patches e as aplica ao ramo atual.

OPÇÕES

(<mbox>|<Maildir>)…​

A lista dos arquivos da caixa de correio para leitura dos patches. Caso você não utilize este argumento, o comando lê na entrada padrão. Caso utilize os diretórios, eles serão tratados como caixas de correio.

-s
--signoff

Adicione uma linha Assinada por: à mensagem do commit utilizando a sua identidade. Para mais informações sobre a assinatura na saída da mensagem, consulte em git-commit[1].

-k
--keep

Repasse o comando -k para o comando git mailinfo (consulte git-mailinfo[1]).

--keep-non-patch

Repasse o comando -b para o comando git mailinfo (consulte git-mailinfo[1]).

--[no-]keep-cr

Com --keep-cr, chame o comando git mailsplit (consulte git-mailsplit[1]) com a mesma opção para evitar que ele retire caractere CR do final das linhas. A variável de configuração am.keepcr pode ser utilizada para definir o comportamento predefinido. O comando --no-keep-cr é útil para substituir a variável am.keepcr.

-c
--scissors

Remova tudo no corpo antes de uma linha "scissors" (tesouras) (see git-mailinfo[1]). Pode ser ativada de fora predefinida ao utilizar a variável de configuração mailinfo.scissors.

--no-scissors

Ignore linhas "scissors" (tesouras) (veja git-mailinfo[1]).

-m
--message-id

Encaminha a opção -m para o comando git mailinfo (consulte git-mailinfo[1]), para que o ID do cabeçalho seja adicionado na mensagem do commit. A variável de configuração am.messageid pode ser utilizada para definir o comportamento predefinido.

--no-message-id

Não adicione o ID do cabeçalho da mensagem à mensagem do commit. A opção --no-message-id é útil para substituir a variável am.messageid.

-q
--quiet

Fique em silêncio Exiba apenas as mensagens de erro.

-u
--utf8

Repasse o comando -u para o comando git mailinfo (consulte git-mailinfo[1]). A mensagem do registro log do proposto commit retirado da mensagem do e-mail é re-codificada com a codificação UTF-8 (a variável de configuração i18n.commitencoding pode ser utilizada para definir a codificação preferida do projeto, caso não seja UTF-8).

Isso era opcional nas versões anteriores do git, agora é a codificação predefinida. É possível utilizar a opção --no-utf8 para se sobrepor a predefinição.

--no-utf8

Repasse o comando -n para o comando git mailinfo (consulte git-mailinfo[1]).

-3
--3way
--no-3way

Quando o patch não for aplicado corretamente, use a mesclagem de 3 vias caso o patch registre a identidade das bolhas aos quais devem ser aplicadas disponibilizando-as localmente. A opção --no-3way pode ser utilizada para substituir uma variável de configuração de três vias. Para mais informações, consulte am.threeWay em git-config[1].

--rerere-autoupdate
--no-rerere-autoupdate

Permita que o mecanismo "rerere" atualize o índice com o resultado da resolução automática de conflitos, caso seja possível.

--ignore-space-change
--ignore-whitespace
--whitespace=<opção>
-C<n>
-p<n>
--directory=<dir>
--exclude=<caminho>
--include=<caminho>
--reject

Estas opções são repassadas ao comando git apply (conulte git-apply[1]) que aplica o patch.

--patch-format

É predefinido que o comando tentará detectar o formato do patch automaticamente. Esta opção permite que o usuário ignore a detecção automática e determine como o formato do patch deve ser interpretados. Os formatos válidos são mbox, mboxrd, stgit, stgit-series e hg.

-i
--interactive

Execute de forma interativa.

--committer-date-is-author-date

É predefinido que o comando registre a data da mensagem do e-mail como a data do autor que fez o commit e utilize a hora da criação como a data do commit. Permite que usuário minta sobre a data do commit utilizando o mesmo valor da data de quem fez o commit.

--ignore-date

É predefinido que o comando registre a data da mensagem do e-mail como a data do autor que fez o commit e utilize a hora da criação como a data do commit. Permite que usuário minta sobre a data do autor utilizando o mesmo valor da data de quem fez o commit.

--skip

Ignore o patch atual. É justificado apenas quando for reiniciar um patch que foi abortado.

-S[<keyid>]
--gpg-sign[=<keyid>]
--no-gpg-sign

Commits assinados com o GPG O argumento keyid é opcional e a predefinição retorna para a identidade de quem fez o commit; caso seja utilizado, deve estar anexado a opção e sem espaço. A opção --no-gpg-sign é útil para revogar a variável de configuração commit.gpgSign e a anterior --gpg-sign.

--continue
-r
--resolved

Após uma falha no patch (tentando aplicar um patch conflitante por exemplo), o usuário o aplicou manualmente e o arquivo do índice armazena o resultado. Faça um commit utilizando o registro de autori, o registro log do commit extraído da mensagem do e-mail, do arquivo do índice atual e continue.

--resolvemsg=<msg>

Quando ocorrer uma falha no patch, a <msg> será exibida na tela antes de encerrar. Substitui a mensagem predefinida informando que você deve utilizar --continue ou --skip para lidar com a falha. Serve apenas para a utilização interna entre o comando git rebase e git am.

--abort

Restaure a ramificação original e aborte a operação de correção.

--quit

Anule a operação de correção, porém mantenha o HEAD e o índice inalterados.

--show-current-patch[=(diff|raw)]

Exiba uma mensagem onde o git am tenha parado por causa dos conflitos. Caso raw seja utilizado, exiba o conteúdo bruto da mensagem do e-mail; no caso do diff, exiba apenas a porção relacionada ao diff. A predefinição retorna para "raw" (bruto/puro).

DISCUSSÃO

Na mensagem, o nome do autor do commit é obtido da linha "From:" (De:) e a data do autor do commit é obtida da linha "Date:" (Data:). O título do commit vem da linha "Subject:" (Assunto:) após a exclusão do prefixo comum "[PATCH <alguma-coisa>]". A linha "Subject:" deve descrever de forma concisa do que se trata o commit em uma linha de texto.

As linhas que iniciam com "From:" (De:), "Date:" (Data) e "Subject:" (Assunto:) no corpo, substituem os respectivos valores do nome e título do autor do commit que foram retirados dos cabeçalhos.

A mensagem do commit é formada pelo título obtido do "Subject:" (Assunto:), uma linha em branco e do corpo da mensagem até o início do patch. O espaço em excesso no final de cada linha é removido automaticamente.

Espera-se que o patch já esteja embutido após a mensagem. Qualquer linha que esteja no formato:

  • três-traços e fim-de-linha, ou

  • uma linha que começa com "diff -" ou

  • uma linha que começa com "Index:"

é tomado como o início de um patch, a mensagem do registro log do commit é finalizado antes da primeira ocorrência de tal linha.

Ao invocar inicialmente o comando git am, indique os nomes das caixas do correio que serão processadas. Ao ver que o primeiro patch que não possa ser aplicado, o processo é interrompido imediatamente. É possível se recuperar deste processo de duas maneiras:

  1. pule o patch atual reexecutando o comando com a opção --skip.

  2. manualmente resolva o conflito no diretório de trabalho e atualize o arquivo do índice para colocá-lo na condição onde o patch deveria ter sido produzido. Em seguida, execute o comando com a opção --continue.

O comando se recusa a processar as novas caixas de correio até que a operação atual seja concluída, portanto, caso decida recomeçar do zero, execute o comando git am --abort antes de executar o comando com os nomes das caixas de correio.

Antes de aplicar quaisquer correções, o ORIG_HEAD é definido na ponta do ramo atual. É útil caso tenha problemas com os vários commits como executar o comando git am na ramificação errada ou caso haja um erro nos commits que são mais facilmente corrigidos alterando a caixa de correio (erros nas linhas "From:" (De:) por exemplo).

GANCHOS

Este comando pode executar os ganchos applypatch-msg, pre-applypatch e post-applypatch. Para mais informações consulte githooks[5].

VEJA TAMBÉM

GIT

Parte do conjunto git[1]