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

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
dev:git:branches [2023/09/15 09:12] yoanndev:git:branches [2023/09/15 16:35] (Version actuelle) yoann
Ligne 7: Ligne 7:
 <code bash> <code bash>
 # lister les branches # lister les branches
-git branch+git branch 
 + 
 +# Afficher seulement le nom de la branche courante 
 +git branch --show-current
  
 # lister les branches non fusionnées # lister les branches non fusionnées
 # avec la branche courante # avec la branche courante
-git branch --no-merged+git branch --no-merged
  
 # lister les branches fusionnées avec # lister les branches fusionnées avec
 # avec la branche courante # avec la branche courante
-git branch --merged+git branch --merged
  
 # Lister les branches fusionnées # Lister les branches fusionnées
 # avec la branche 'testing' # avec la branche 'testing'
-git branch --merged 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 branch) et la branche qu'elle suit est dite branche amont (upstream branch).+===== Créer une branche =====
  
-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:+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épot, la 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:
  
 <code bash> <code bash>
-# Récupérer les modifications +# Récupérer les modifications disponibles 
-git fetch origin+# 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>
  
-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 master.+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: 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:
  
 <code bash> <code bash>
-$git merge origin/master +git merge origin/master
-$git merge {@upstrem} +
-$git merge {@u} +
-</code>+
  
 +# Equivalent
 +git merge {@upstrem}
  
-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 distante:+# Equivalent 
 +git merge {@u} 
 +</code> 
 + 
 +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 
  
-Un raccourci existe pour ce cas banal: 
 <code bash> <code bash>
-$ git branch --track 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 '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:+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> <code bash>
-Pousser les modifications sur le serveur amont +Crée automatiquement une branche locale de suivi de "origin/hotfix41" 
-git push origin testing+git checkout hotfix41
 </code> </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 ===== ===== Pousser une branche sur le serveur Amont =====
  
-Lorsqu'on crée une branche elle n'existe que localement. Si on souhaite partager les révisions portées par cette branche sur le serveur amont, il faut le faire explicitement+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> <code bash>
  
-# Pousse la brache locale maBrache sur le serveur amont "origin" +# Pousse la branche locale "feature02" sur le serveur amont "origin" 
-git push --set-upstream origin nom-de-branche-corrigé+git push --set-upstream origin feature02
 </code> </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.1694769165.txt.gz · Dernière modification : 2023/09/15 09:12 de yoann