¿Por qué Git diff no muestra nada para paths no compartidos?

Al fusionar dos twigs, muchas veces la fusión falla, y tengo que resolver las diferencias de forma individual.

Algunos files que se fusionan con éxito, cuya diferencia puedo ver usando

git diff --staged <merged-file> 

El problema es que para las routes no fusionadas, cuando bash verificar las diferencias introducidas, no veo nada.

 git diff <unmerged-file> 

Pero cuando trato de diferenciarlo con la twig maestra remota, aparecen los diffs.

 git diff origin/master <unmerged-file> 

¿Por qué está pasando esto? ¿La operación de fusión está actualizando mi HEAD local o algo así?
Además, cuando uso git add para marcar la resolución, nunca entran en el área de preparación, ¿es esa la razón por la que git diff no muestra nada?

La única forma en que puedo ver los cambios para los files de conflicto es:

 git diff --merge <unmerged-file> 

Durante una fusión, los files en conflicto están en un estado especial. Existen múltiples inputs con el mismo nombre de file y diferentes id de blob. Estos suelen ser tres blobs (utilizados para la combinación de tres vías) o dos blobs (para una combinación simple).

Intenta la fusión …

 $ git merge origin/otherbranch Merge remote-tracking branch 'origin/otherbranch' into mybranch Conflicts: somefile.txt 

Revise los files que necesitan fusionarse

 $ git diff --name-status --diff-filter=U U somefile.txt 

o

 $ git update-index --refresh somefile.txt: needs merge 

Revise los blobs que se relacionan con el file que se fusiona;

 $ git ls-files -s somefile.txt 100644 9a0579524e0c7ba9fc9ae18badadaddcad2d598f **1** somefile.txt 100644 1bcff16b6de5ed304a06e643070e40787db1ead8 **2** somefile.txt 100644 6e52271b22f6a6d1150619433551e0fa9094b108 **3** somefile.txt 

De acuerdo con la página de manual de git-merge. 1 = antepasado común, 2 = HEAD (nuestro) y 3 = MERGE_HEAD (el suyo)

Mostrar diferencias

 $ git diff 9a0579524e0c7ba9fc9ae18badadaddcad2d598f 6e52271b22f6a6d1150619433551e0fa9094b108 < some differences > 

Recuperar el ancestro común …

$ git cat-file blob 9a0579524e0c7ba9fc9ae18badadaddcad2d598f

Checkout versión de HEAD

 $ git checkout --ours somefile.txt 

versión de pago de MERGE_HEAD

 $ git checkout --theirs somefile.txt 

Restablecer a 'fusionado' cambiado

 $ git checkout -m somefile.txt 

No ha empujado sus cambios fusionados a la twig remota. La fusión solo afecta a la sucursal local. Así que existe diferencia entre la twig local y remota.