Ninguna de las otras respuestas actuales "fusionará" los archivos, como si estuviera utilizando el comando de combinación. (En el mejor de los casos, requerirán que elija manualmente las diferencias). Si realmente desea aprovechar la fusión utilizando la información de un antepasado común, puede seguir un procedimiento basado en uno que se encuentra en la sección "Fusión avanzada" del git Manual de referencia.
Para este protocolo, supongo que desea fusionar el archivo 'ruta / a / archivo.txt' desde origen / maestro en CABEZA - modifique según corresponda. (No tiene que estar en el directorio superior de su repositorio, pero ayuda).
# 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
git merge-file debe usar todas las configuraciones de fusión predeterminadas para formatear y cosas por el estilo.
También tenga en cuenta que si su "nuestro" es la versión de copia de trabajo y no desea ser demasiado cauteloso, puede operar directamente en el archivo:
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