Vous pouvez suivre l'exemple j'ai posté sur How do I tell git to always select my local version for conflicted merges on a specific file?.
Ce scénario implique un pilote de fusion, que vous pouvez modifier pour afficher ces trois variables.
keepmine.sh
echo
echo origin $1
echo origin content:
cat $1
echo
echo local $2
echo local content:
cat $2
echo
echo remote $3
echo remote content:
cat $3
exit 0
Voici ce qu'il m'a rendu:
C:\Prog\Git\tests\CopyMerge>git merge hisBranch
origin .merge_file_a08152
origin content:
b
local .merge_file_b08152
local content:
b
myLineForB
remote .merge_file_c08152
remote content:
b
hisLineForB
Donc, dans ce cas, il semble être générer trois fichiers temporaires, locaux noms merge_file_xxx
.
Comme mentionné par BlackEye dans le commentaire et la réponse de blackeye "Git Merge Driver - How to find out full path of merged file?", commit ef45bb1 introduit (GIT 2.5, Juillet 2015) le chemin d'origine aux conducteurs externes avec %P
.
Mais il devrait y avoir un moyen de récupérer le chemin du fichier d'origine, je pense. Et aujourd'hui, 5 ans plus tard? Toute suggestion? – BlackEye
Le chemin du fichier d'origine peut maintenant (depuis 2.5) être passé au pilote de fusion en utilisant le paramètre% P. – BlackEye
@BlackEye Bonne trouvaille! J'ai inclus votre commentaire dans la réponse pour plus de visibilité. – VonC