Ceci est une ancienne révision du document !
Le HEAD est le pointeur sur le dernier commit de la branche courante. La commande git branch liste les branches existantes et marque d'une astérisque la branche courante:
$ git branch
Lors d'un clonage de dépot, la branche master du serveur est référencée origin/master. La branche master locale est automatique définie comme suivant cette branche. on parle de branche de suivi (tracking banch) et la branche qu'elle suit est dite branche amont (upstrem branch).
Le temps passant si des collaborateurs ont poussé des modifications sur le serveur nous n'en avons pas connaissance. Pour mettre à jour notre dépôt, on récupère les modifications apportées sur le serveur via un fetch:
$ git fetch origin
Les modifications apportées par les collaborateurs sont ajoutées dans notre dépot mais ne sont pas intégrées a notre branche locale master. Pour ce faire il faudra faire un merge de origin/master sur master.
Lorsqu'on est positionné sur une branche suivie, on peut faire référence à la branche amont via *{@upstream} ou {@u}**. Par exemple en étant positionné sur master, si l'on souhaite fusionner les modification apportées sur la branche amont origin/master (récupérées précédemment par un fetch), les trois commandes ci-dessous sont équivalentes:
$git merge origin/master $git merge {@upstrem} $git merge {@u}
Si une nouvelle branche est disponible, la référence existe mais la branche locale n'existe pas. Pour apporter des modifications il faut créer une branche locale suivant la nouvelle branche dstante:
Un raccourci existe pour ce cas banal:
$ git branch --track origin/testing
La commande précédente aboutie à la création d'une branche locale de suivi testing ayant pour branche amont origin/testing. On peut alors se positionner sur la branche locale testing apporter les modifications souhaitées et enfin pousser sur le serveur distant quand le moment est venu:
$ git push origin testing