Outils pour utilisateurs

Outils du site


dev:git:branches

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
dev:git:branches [2016/12/28 13:17] – créée yoanndev:git:branches [2023/09/15 16:35] (Version actuelle) yoann
Ligne 6: Ligne 6:
  
 <code bash> <code bash>
-git branch+# lister les branches 
 +git branch 
 + 
 +# Afficher seulement le nom de la branche courante 
 +git branch --show-current 
 + 
 +# lister les branches non fusionnées 
 +# avec la branche courante 
 +git branch --no-merged 
 + 
 +# lister les branches fusionnées avec 
 +# avec la branche courante 
 +git branch --merged 
 + 
 +# Lister les branches fusionnées 
 +# avec la branche 'testing' 
 +git branch --merged testing 
 + 
 +# Lister toutes les branches 
 +git branch --all
 </code> </code>
  
-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)+===== Créer une branche =====
  
-Lorsqu'on est positionné sur une branche suivie, on peut faire référence à la branche amont via le pointeur+Généralement on souhaite créer la branche et basculer dessus : 
 +<code bash> 
 +git checkout -b issue33 
 + 
 +# Equivalent 
 +git switch --create issue33 
 +</code> 
 + 
 +===== Branches locales et distantes ===== 
 + 
 +Lors d'un clonage de dépotla branche master du serveur en amont est référencée par **origin/master**. La branche master locale est automatique définie comme suivant cette branche. on parle de branche de suivi (tracking branch) et la branche qu'elle suit est dite branche amont (upstream 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 dépôt distant via un fetch:
  
-On récupère les modifications apportées sur le serveur 
 <code bash> <code bash>
-git fetch origin+# Récupérer les modifications disponibles 
 +# sur le dépot en amont nommé "origin" 
 +git fetch origin 
 + 
 +# Récupère les modifications sur le serveur 
 +# amont yoann 
 +git fetch yoann
 </code> </code>
  
-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:+Les modifications apportées par les collaborateurs sont ajoutées dans notre dépot mais ne sont pas intégrées à notre branche locale master. Pour ce faire il faudra faire un merge de origin/master sur la branche locale 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:
  
-Un raccourci existe pour ce cas banal: 
 <code bash> <code bash>
-git branch --track origin/testing+git merge origin/master 
 + 
 +# Equivalent 
 +git merge {@upstrem} 
 + 
 +# Equivalent 
 +git merge {@u}
 </code> </code>
  
-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:+Pour apporter des modifications sur une branche du serveur amont il faut créer une branche locale paramétrée pour suivre la branche amont 
  
 <code bash> <code bash>
-$ git push origin testing+# Création d'une branche locale qui suit la 
 +# branche amont "feature01"  
 +git checkout -b feature01 origin/feauture01 
 + 
 +# Equivalent 
 +$ git branch --track origin/feature01
 </code> </code>
  
 +La commande précédente aboutie à la création d'une branche locale nommée 'feature01' ayant pour branche amont 'origin/feature01'. On peut alors se positionner sur la branche locale "feature01" apporter les modifications souhaitées et enfin pousser sur le serveur distant quand le moment est venu.
 +
 +L’extraction d’une branche locale à partir d’une branche distante crée automatiquement ce qu’on appelle une "branche de suivi" (tracking branch) et la branche qu’elle suit est appelée "branche amont" (upstream branch). Les branches de suivi sont des branches locales qui sont en relation directe avec une branche distante. Si vous vous trouvez sur une branche de suivi et que vous tapez git push, Git sélectionne automatiquement le serveur vers lequel pousser vos modifications.
 +
 +<code bash>
 +# Crée automatiquement une branche locale de suivi de "origin/hotfix41"
 +git checkout hotfix41
 +</code>
 +
 +Pour afficher les branches de suivi configurées dans le dépôt courant :
 +<code bash>
 +git fetch --all
 +git branch -a -vv
 +</code>
 +
 +
 +===== Pousser une branche sur le serveur Amont =====
 +
 +Lorsqu'on crée une branche elle n'existe que localement. Si on souhaite pousser les commits portés par cette branche sur le serveur amont, il faut le faire explicitement :
 +
 +<code bash>
 +
 +# Pousse la branche locale "feature02" sur le serveur amont "origin"
 +git push --set-upstream origin feature02
 +</code>
 +
 +
 +===== Supprimer des branches =====
 +
 +Pour supprimer une branche locale "feature02":
 +<code bash>
 +git branch -d feature02
 +</code>
 +
 +Pour supprimer une branche distante "feature33" présente sur le serveur amont "origin" :
 +
 +<code bash>
 +git push origin --delete feature33
 +</code>
 +
 +
 +===== Labels standards =====
  
 +^ proposed, pu (proposed update), feature | Ajout de fonctionnalité  |
 +^ issue, iss, hotfix   | Correction         |
dev/git/branches.1482931034.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)