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

NOME

git-merge-file - Executa uma mesclagem do arquivo com três vias

RESUMO

git merge-file [-L <nome-atual> [-L <nome-base> [-L <outro-nome>]]]
	[--ours|--theirs|--union] [-p|--stdout] [-q|--quiet] [--marker-size=<n>]
	[--[no-]diff3] [--object-id] <atual> <base> <outro>

DESCRIÇÃO

Dados três arquivos <atual>, <base> e <outro>, o git merge-file incorpora todas as alterações que levam de <base> para <outro> em <atual>. O resultado normalmente vai para <atual>. O git merge-file é útil para combinar alterações separadas num original. Suponha que <base> seja o original e que tanto <atual> quanto <outro> sejam modificações de <base>, então o git merge-file combina ambas as alterações.

Um conflito ocorre se tanto <atual> quanto <outro> tiverem alterações num segmento comum de linhas. Se for encontrado um conflito, o comando git merge-file normalmente emite um aviso e coloca o conflito entre colchetes com linhas que contêm marcadores <<<<<<< e >>>>>>>. Um conflito típico terá a seguinte aparência:

<<<<<<< A
linhas no arquivo A
=======
linhas no arquivo B
>>>>>>> B

Se houver conflitos, o usuário deve editar o resultado e excluir uma das alternativas. Entretanto, quando as opções --ours, --theirs ou --union estiverem em vigor, estes conflitos são resolvidos favorecendo as linhas de <atual>, as linhas <outro> ou as linhas de ambos, respectivamente. O comprimento dos marcadores de conflito pode ser fornecido com a opção --marker-size.

Caso a opção --object-id for usada, ocorrerá exatamente o mesmo comportamento, a menos que, em vez de especificar o que deve ser mesclado como arquivos, ele será especificado como uma lista de IDs dos objetos referentes a bolha.

O valor na saída deste programa é negativo caso ocorra um erro, se não o número de conflito (truncado para 127 caso haja mais que muitos conflitos). Caso a mesclagem esteja limpa, o valor na saída será 0.

O comando git merge-file foi projetado para ser um clone reduzido do RCS merge; isto é, implementa toda a funcionalidade de mesclagem do RCS, necessária ao git[1].

OPÇÕES

--object-id

Especifique o conteúdo a ser mesclado como bolhas no repositório atual em vez dos arquivos. Nesse caso, a operação deve ocorrer num repositório válido.

Se a opção -p for usada, o arquivo mesclado (incluindo os conflitos, se houver) vai para a saída normalmente predefinida; caso contrário, o arquivo mesclado é gravado no armazenamento de objetos e o ID do objeto de sua bolha é gravado na saída predefinida.

-L <rótulo>

Essa opção pode ser utilizada até três vezes e define os rótulos para serem utilizados em vez dos nomes dos arquivos correspondentes nos relatórios de conflito. Ou seja, git merge-file -L x -L y -L z a b c gera uma saída onde parece que veio dos arquivos x, y e z em vez dos arquivos a, b e c.

-p

Envie os resultados para a saída padrão em vez de sobrescrever <atual>.

-q

Quieto; não avise sobre conflitos.

--diff3

Exibe conflitos no estilo "diff3".

--zdiff3

Exibe conflitos no estilo "zdiff3".

--ours
--theirs
--union

Em vez de deixar conflitos no arquivo, resolva conflitos favorecendo o nosso lado (ou o deles, ou ambos) das linhas.

--diff-algorithm={patience|minimal|histogram|myers}

Use um algoritmo de comparação diferente durante a mesclagem. A predefinição atual é "myers", mas a seleção de um algoritmo mais recente, como o "histograma", pode ajudar a evitar erros de mesclagem que ocorrem devido a linhas correspondentes sem importância (como chaves de funções distintas). Consulte também git-diff[1] --diff-algorithm.

EXEMPLOS

git merge-file README.my README README.upstream

combina as alterações de README.my e README.upstream desde o README, tenta mesclá-las e grava o resultado no README.my.

git merge-file -L a -L b -L c tmp/a123 tmp/b234 tmp/c345

mescla tmp/a123 e tmp/c345 com a base tmp/b234, mas utiliza os rótulos a e c em vez do tmp/a123 e tmp/c345.

git merge-file -p --object-id abc1234 def567 890abcd

Combina as alterações da bolha abc1234 e 890abcd desde def567, tenta mesclá-las e grava o resultado na saída predefinida

GIT

Parte do conjunto git[1]

scroll-to-top