Git 🌙
Português (Brasil) ▾ Topics ▾ Latest version ▾ git-annotate last updated in 2.41.0

NOME

git-annotate - Anote linhas do arquivo com as informações do commit

RESUMO

git annotate [<opções>] [<opções-da-revisão>] [<revisão>] [--] <arquivo>

DESCRIÇÃO

Anota cada linha no arquivo informado com as informações do commit que introduziu a linha. Anota opcionalmente numa determinada revisão.

A única diferença entre esse comando e o git-blame[1] é que eles utilizam formatos de saída ligeiramente diferentes, este comando existe apenas para a compatibilidade com as versões anteriores, visando a compatibilidade dos scripts já existentes e para fornecer um nome do comando mais familiar para as pessoas vindas de outros sistemas SCM.

OPÇÕES

-b

Mostra um SHA-1 vazio nos limites dos commits. Também é possível controlar através da opção de configuração blame.blankBoundary.

--root

Não trate os commits raiz com limites. Também é possível controlar através da opção de configuração blame.showRoot.

--show-stats

Inclui estatísticas adicionais no fim da saída do comando blame.

-L <inicio>,<fim>
-L :<funcname>

Anote apenas o intervalo das linhas informadas por <inicio>,<fim> ou pelo nome da função regex <nome-da-função>. Esta opção pode ser utilizada várias vezes. São permitidos intervalos sobrepostos.

<inicio> e <fim> são opcionais. -L <inicio> ou -L <inicio>, abrange do <inicio> para o final do arquivo. -L ,<fim> abrange do começo ao <fim>.

<inicio> e <fim> podem assumir uma destas formas:

  • número

    Caso <inicio> ou <fim> seja um número, ele especifica um número de linha absoluto (as linhas contam a partir do 1).

  • /regex/

    Este formulário usará a primeira linha que corresponder ao regex POSIX informado. Se <inicio> for um regex, ele pesquisará a partir do final do intervalo -L anterior, se houver, caso contrário, a partir do início do arquivo. Se <inicio> for um ^/regex/, ele pesquisará a partir do início do arquivo. Se <fim> for um regex, ele pesquisará a partir da linha indicada por <inicio>.

  • +offset ou -offset

    Válido apenas para <fim> que definirá uma quantidade de linhas antes ou depois da linha utilizada por <inicio>.

Caso :<funcname> seja informado no lugar do <inicio> e <fim>, é uma expressão regular que indica o intervalo da primeira <funcname> que coincida com <funcname> até a próxima linha funcname. :<funcname> pesquisa no final do intervalo -L anterior, se houver, caso contrário, a pesquisa ocorrerá desde o início do arquivo. ^:<funcname> pesquisa desde o início do arquivo. Os nomes das funções são determinados da mesma maneira que o comando git diff lida com os pedaços dos cabeçalhos do patch (consulte Definindo um cabeçalho personalizado do hunk em gitattributes[5]).

-l

Exibe o rev longo (Predefinição: desligado).

-t

Exibe o registro de data e hora em formato bruto (Predefinição: desligado).

-S <revs-file>

Utilize as revisões do arquivo-revs no lugar de chamar git-rev-list[1].

--reverse <rev>..<rev>

Avance com o histórico em vez de retroceder. Em vez de mostrar a revisão onde uma linha apareceu, isso mostra a última revisão onde uma linha existiu. Isso requer um intervalo de revisão como START…​END, onde o caminho para a falha exista em START. O comando git blame --reverse START é considerado como git blame --reverse START..HEAD por questão de conveniência.

--first-parent

Siga apenas o primeiro commit da origem ao ver um commit de mesclagem. Essa opção pode ser usada para determinar quando uma linha foi incorporado em um determinado ramo em vez da sua introdução no histórico geral.

-p
--porcelain

Exiba num formato designado para o consumo de uma máquina.

--line-porcelain

Exibe o formato porcelana, porém envie informações de cada linha do commit gerado e não apenas na primeira vez que um commit tiver uma referência. Implica no uso da opção --porcelain.

--incremental

Exiba o resultado incrementadamente num formado designado para o consumo de uma máquina.

--encoding=<codificação>

Defina a codificação a ser utilizada para gerar os nomes dos autores e do resumo dos commits. Definindo como none torna a saída "blame" em dados sem conversão. Para mais informações, consulte a discussão sobre codificação na página do manual git-log[1].

--contents <arquivo>

Anote usando o conteúdo do arquivo nomeado, iniciando em <rev> caso seja definido, caso contrário, HEAD. Você pode usar - para fazer o comando ler a partir da entrada padrão para dentro do arquivo.

--date <formato>

Especifica o formato utilizado para gerar as datas. Caso --date não seja utilizado, o valor da variável de configuração blame.date será utilizado. Caso a variável de configuração blame.date também não esteja definida, o formato ISO será utilizado. Para ver quais são os valores compatíveis, consulte a discussão da opção --date em git-log[1].

--[no-]progress

É predefinido que a condição do progresso seja relatado no fluxo de erros padrão quando estiver conectado num terminal. Essa flag permite que os relatórios de progresso sejam feitos ainda que não estejam conectados num terminal. Não é possível usar --progress junto com --porcelain ou --incremental.

-M[<num>]

Detecta se as linhas foram movidas ou copiadas dentro de um arquivo. Quando um commit move ou copia um bloco de linhas (o arquivo original tem A e depois B, e o commit o altera para B e depois A por exemplo), o algoritmo tradicional de blame (flaha) percebe apenas metade do movimento e normalmente aponta as linhas que foram movidas para cima (ou seja, B) para o commit principal e atribui a falha às linhas que foram movidas para baixo (ou seja, A) no commit relacionado. Com esta opção, os dois grupos de linhas são apontados no commit principal através da execução de passes extras durante a inspeção.

A opção <num> é opcional porém é o limite inferior da quantidade de caracteres alfanuméricos que o Git deve detectar como mover/copiar dentro de um arquivo para associar essas linhas ao commit de origem. 20 é o valor predefinido.

-C[<num>]

Além do -M, detecta as linhas que foram movidas ou que foram copiadas de outros arquivos que foram alterados no mesmo commit. Isso é útil quando você reorganiza o programa e move o código entre arquivos. Quando essa opção é usada duas vezes, o comando procura adicionalmente pela cópias de outros arquivos no commit que cria o arquivo. Quando essa opção é usada três vezes, o comando procura adicionalmente por cópias de outros arquivos em qualquer commit.

A opção <num> é opcional porém é o limite inferior da quantidade de caracteres alfanuméricos que o Git deve detectar como mover/copiar entre os arquivos para associar estas linhas ao commit de origem. 40 é o valor predefinido. Caso haja mais de uma opção -C, o argumento <num> do último -C entrará em vigor.

--ignore-rev <rev>

Ignora as alterações feitas pela revisão ao atribuir a blame (falha), como se a alteração nunca tivesse acontecido. As linhas que foram alteradas ou que foram adicionadas através de um commit que foi ignorado, serão atribuídos ao commit anterior que alterou esta linha ou as linhas próximas. Esta opção pode ser usada diversas vezes para ignorar mais de uma revisão. Se a opção de configuração blame.markIgnoredLines for definida, as linhas que foram alteradas por um commit ignorado e atribuídas a outro commit, serão marcadas com um ? ao serem gerados pelo blame. Se a opção de configuração blame.markUnblamableLines for definida, as linhas tocadas por um commit ignorado e que não pudemos atribuir a outra revisão, serão marcadas com um *.

--ignore-revs-file <arquivo>

Ignore as revisões listadas no arquivo, que deve estar no mesmo formato como em fsck.skipList. Essa opção pode ser repetida, e estes arquivos serão processados após quaisquer arquivos especificados com a opção de configuração blame.ignoreRevsFile. Um nome de arquivo vazio, "", limpará a lista das revisões dos arquivos que foram processados anteriormente.

--color-lines

Anotações das cores da linha no formato padrão, diferentemente se elas vierem do mesmo commit da linha anterior. Isso torna mais fácil distinguir os blocos de código introduzidos por diferentes commits. A cor predefinida é ciano e pode ser ajustada usando a opção color.blame.repeatedLines.

--color-by-age

Faça anotações coloridas na linha no formato padrão dependendo da idade da linha. A opção de configuração color.blame.highlightRecent controla qual cor é usada para cada faixa de idade.

-h

Exiba a mensagem de ajuda.

VEJA TAMBÉM

GIT

Parte do conjunto git[1]

scroll-to-top