command-line:git:branches
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
command-line:git:branches [le 28/03/2013 à 14:37] – créée Yosko | command-line:git:branches [le 01/09/2016 à 12:41] (Version actuelle) – [Commandes principales] Yosko | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
On peut travailler sur plusieurs branches en parallèle. Par défaut l' | On peut travailler sur plusieurs branches en parallèle. Par défaut l' | ||
- | TODO | + | ===== Gestion basique des branches ===== |
+ | |||
+ | |||
+ | ===== Commandes principales ===== | ||
+ | Le plus simple : | ||
+ | <code bash> | ||
+ | git branch | ||
+ | git branch A # | ||
+ | </ | ||
+ | |||
+ | Changer de branche (le contenu du dossier local sera celui de la branche) : | ||
+ | <code bash> | ||
+ | git checkout A #work on branch A | ||
+ | </ | ||
+ | |||
+ | Créer une nouvelle branche issue de l' | ||
+ | <code bash> | ||
+ | git checkout -b hotfix | ||
+ | </ | ||
+ | |||
+ | Fusionner le contenu d'une branche (ici, hotfix) dans la branche courante (ici, master) : | ||
+ | <code bash> | ||
+ | git checkout master | ||
+ | git merge hotfix | ||
+ | </ | ||
+ | |||
+ | Il ne reste plus qu'à supprimer la branche devenue inutile : | ||
+ | <code bash> | ||
+ | git branch -d hotfix | ||
+ | </ | ||
+ | |||
+ | ===== Test de fusion ===== | ||
+ | |||
+ | Effectuer un merge à blanc : | ||
+ | <code bash> | ||
+ | git merge --no-commit --no-ff < | ||
+ | </ | ||
+ | |||
+ | Retour arrière : | ||
+ | <code bash> | ||
+ | git merge --abort | ||
+ | </ | ||
+ | ===== Précisions sur la fusion ===== | ||
+ | Si on fusionne avec une branche qui avait juste quelques commits de plus, il se passe juste un " | ||
+ | * Si aucun conflit, un nouveau commit est créé sur la branche de destination, | ||
+ | * 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 ===== | ||
+ | Si, lors d'une fusion, un conflit apparait, les fichiers concernés comporteront un ou plusieurs passages de la forme : | ||
+ | < | ||
+ | <<<<<<< | ||
+ | Version 1 | ||
+ | ======= | ||
+ | Version 2 | ||
+ | >>>>>>> | ||
+ | </ | ||
+ | En ce cas, la version du haut est celle de HEAD, donc de la branche actuellement extraite, et celle du bas vient de la branche qu'on tente de fusionner dans la branche courante. | ||
+ | |||
+ | Modifier le fichier pour faire la fusion " | ||
+ | |||
+ | Autre solution : git mergetool | ||
+ | |||
+ | ===== En vrac ===== | ||
+ | Diverses commandes utiles | ||
+ | <code bash> | ||
+ | #list existing branches with last action in each | ||
+ | git branch -v | ||
+ | #list branches that were already merge with the current branch | ||
+ | git branch --merged | ||
+ | #list branches that have unmerged work compared to current branch | ||
+ | git branch --no-merged | ||
+ | #create local branch from existing remote branch | ||
+ | git checkout -b C remoteName/ | ||
+ | |||
+ | #delete branch on remote repository | ||
+ | git push remoteName :C | ||
+ | #same syntax as pushing the local branch to the remote | ||
+ | git push remoteName C:C | ||
+ | </ |
command-line/git/branches.1364481457.txt.gz · Dernière modification : le 28/03/2013 à 14:37 de Yosko