Git

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] <arquivo-atual> <arquivo-base> <outro-arquivo>

DESCRIÇÃO

O comando git merge-file incorpora todas as alterações que levam de <arquivo-base> para <outro-arquivo> no <arquivo-atual>. O resultado normalmente é inserido no <arquivo-atual>. O comando git merge-file é útil para combinar as alterações separadas em um original. Suponha que <arquivo-base> seja o original e ambos os <arquivo-atual> e <outro-arquivo> sejam alterações do <arquivo-base>, então o comando git merge-file faz a combinação das duas alterações .

Ocorre um conflito se ambos <arquivo-atual>`e o `<outro-arquivo> tiver alterações em um segmento comum das linhas. Caso um conflito seja encontrado, o comando git merge-file normalmente gera um aviso e coloca o conflito entre as linhas que contêm os marcadores <<<<<<< e >>>>>>>. Um conflito típico ficaria assim:

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

Caso haja conflitos, o usuário deve editar o resultado e excluir uma das alternativas. Quando a opção --ours (nosso), --theirs (deles) ou --union (união) está em vigor e no entanto, estes conflitos são resolvidos favorecendo as linhas vindas do <arquivo-atual> `, as linhas vindas do `<outro-arquivo> ou as linhas de ambos, respectivamente. O comprimento dos marcadores de conflito pode ser definidos através da opção --marker-size.

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

-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 o <arquivo atual>.

-q

Quieto; não avise sobre conflitos.

--diff3

Exibe conflitos no estilo "diff3".

--ours
--theirs
--union

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

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

Parte do conjunto git[1]