Outils pour utilisateurs

Outils du site


command-line: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
command-line:git:branches [le 03/04/2013 à 09:28] Yoskocommand-line:git:branches [le 01/09/2016 à 12:41] (Version actuelle) – [Commandes principales] Yosko
Ligne 3: Ligne 3:
  
 ===== Gestion basique des branches ===== ===== Gestion basique des branches =====
 +
 +
 +===== Commandes principales =====
 +Le plus simple :
 <code bash> <code bash>
 git branch       #list existing branches and point the current one git branch       #list existing branches and point the current one
 git branch A     #create a new branch git branch A     #create a new branch
-git checkout A   #work on branch A (replaces files in working dir) 
-git merge B      #merge B modifications into the current branch 
-git branch -d B  #delete branch B 
 </code> </code>
  
 +Changer de branche (le contenu du dossier local sera celui de la branche) :
 +<code bash>
 +git checkout A   #work on branch A
 +</code>
 +
 +Créer une nouvelle branche issue de l'actuelle et travailler directement dessus
 +<code bash>
 +git checkout -b hotfix
 +</code>
 +
 +Fusionner le contenu d'une branche (ici, hotfix) dans la branche courante (ici, master) :
 +<code bash>
 +git checkout master
 +git merge hotfix
 +</code>
 +
 +Il ne reste plus qu'à supprimer la branche devenue inutile :
 +<code bash>
 +git branch -d hotfix
 +</code>
 +
 +===== Test de fusion =====
 +
 +Effectuer un merge à blanc :
 +<code bash>
 +git merge --no-commit --no-ff <branch-name>
 +</code>
 +
 +Retour arrière :
 +<code bash>
 +git merge --abort
 +</code>
 +===== Précisions sur la fusion =====
 +Si on fusionne avec une branche qui avait juste quelques commits de plus, il se passe juste un "fast-forward", sans risque. Par contre si chacune des 2 branches divergent (ont eu des commits différents), la fusion est un peu plus complexe, et peut révéler des confilts.
 +  * Si aucun conflit, un nouveau commit est créé sur la branche de destination, rassemblant les commits spécifiques de la branche source
 +  * Si un conflit au moins est détecté, une tentative de merge est faite en local, et c'est au développeur de corriger le conflit avant de le commiter (voir plus bas)
 ===== Conflits ===== ===== Conflits =====
 Si, lors d'une fusion, un conflit apparait, les fichiers concernés comporteront un ou plusieurs passages de la forme : Si, lors d'une fusion, un conflit apparait, les fichiers concernés comporteront un ou plusieurs passages de la forme :
command-line/git/branches.1364981330.txt.gz · Dernière modification : le 03/04/2013 à 09:28 de Yosko