C'est une question facile, mais git est vraiment déroutant avec ses étiquettes, et je n'ai pas pu trouver de réponse.
Lorsque j'ai des modifications locales et que je veux fusionner le dernier référentiel distant dans mon référentiel local, je fais un commit local puis git pull.
Lorsque les conflits de fusion apparaissent, j'ai la possibilité de résoudre les conflits à l'aide de MERGE_HEAD et de résoudre les conflits à l'aide de HEAD
Lequel est le référentiel distant et lequel est le référentiel local?
Je vous remercie
Ils sont les deux locaux (c'est important, mais pas très utiles :-)).
HEAD
est votre branche actuelle, ce qui signifie celui que vous avez vérifié maintenant. Pour git merge
c'est celui que vous aviez vérifié lorsque vous avez commencé.
MERGE_HEAD
est le autre commit, ce qui signifie l'ID de hachage du commit que vous avez dit à Git de fusionner. C'est, git merge Origin/master
résout Origin/master
à un ID de hachage de validation local, puis fusionne ce commit et MERGE_HEAD
contient l'ID de hachage de cette validation.
Je pense qu'un meilleur terme pour l'autre commit est autre ou --theirs
, et Git utilise parfois ces termes, mais d'autres bits de Git utilisent le terme distant pour faire référence à --theirs
commit.
Je suis tombé sur ce fil en cherchant le même problème. J'utilise WinMerge comme outil de fusion pour TortoiseGit, et lors de la résolution d'un conflit, il affiche 3 volets: MERGE_HEAD
à gauche, Base
au milieu et HEAD
à droite.
Il s'avère que le MERGE_HEAD
est la validation/branche que vous essayez de fusionner, HEAD
est la validation/branche que vous essayez de fusionner, et Base
est le résultat de la fusion que vous devez modifier pour résoudre le conflit.
Par conséquent, vous devez modifier le code dans le volet central, Base
, l'enregistrer et valider.