Nenhuma das outras respostas atuais realmente "mesclará" os arquivos, como se você estivesse usando o comando mesclar. (Na melhor das hipóteses, eles exigirão que você escolha manualmente as diferenças.) Se você realmente deseja tirar vantagem da fusão usando as informações de um ancestral comum, pode seguir um procedimento baseado no encontrado na seção "Mesclagem avançada" do git Manual de referencia.
Para este protocolo, suponho que você queira mesclar o arquivo 'caminho / para / arquivo.txt' da origem / mestre no HEAD - modifique conforme apropriado. (Você não precisa estar no diretório superior do seu repositório, mas ajuda.)
# Find the merge base SHA1 (the common ancestor) for the two commits:
git merge-base HEAD origin/master
# Get the contents of the files at each stage
git show <merge-base SHA1>:path/to/file.txt > ./file.common.txt
git show HEAD:path/to/file.txt > ./file.ours.txt
git show origin/master:path/to/file.txt > ./file.theirs.txt
# You can pre-edit any of the files (e.g. run a formatter on it), if you want.
# Merge the files
git merge-file -p ./file.ours.txt ./file.common.txt ./file.theirs.txt > ./file.merged.txt
# Resolve merge conflicts in ./file.merged.txt
# Copy the merged version to the destination
# Clean up the intermediate files
O arquivo de mesclagem git deve usar todas as suas configurações de mesclagem padrão para formatação e similares.
Observe também que se o "nosso" é a versão da cópia de trabalho e você não deseja ser excessivamente cauteloso, pode operar diretamente no arquivo:
git merge-base HEAD origin/master
git show <merge-base SHA1>:path/to/file.txt > ./file.common.txt
git show origin/master:path/to/file.txt > ./file.theirs.txt
git merge-file path/to/file.txt ./file.common.txt ./file.theirs.txt