technique:git:git_avancees

Ceci est une ancienne révision du document !


Git : fonctionnalités avancées

Pour pouvoir utiliser pleinement Git, il peut être utile de s'approprier la notion de branches. Une branche est une fonctionnalité ou une option que l'on souhaite ajouter et tester sans quelle vienne pour l'instant impacter le coeur du projet.

On crée une nouvelle branche au projet, à partir de la branche master

git branch nouvellebranche

On passe sur la branche nouvellebranche

git checkout nouvellebranche

ou plus directement :

git checkout -b nouvellebranche

On peut faire des commits (git add & git commit) sur cette branche. On peut aussi repasser sur la branche principale et en faire d'autres.

git checkout master

Il est aussi possible de venir se placer sur un commit, une branche ou un tag précédent :

git checkout nomcommit
git checkout vieillebranche
git checkout nomtag

(Voir git checkout -h)

On repasse sur la branche master

git checkout master

Et on fusionne la branche souhaitée vers la branche en cours (master)

git merge nouvellebranche

Puis on peut supprimer la branche en cours :

git branch -d nouvellebranche # Si status est à jour
ou
git branch -D nouvellebranche # si pas fusionnée

En cas de merge conflictuel, il faut résoudre le confilt en éditant les fichiers fusionnés qui contiennent les diff.

Il faut éditer les fichiers en conflit et finir avec un :

git add fichiers_en_conflit
git commit

Il est possible d'utiliser des outils comme :

git mergetool fichier_en_conflit

Il est possible de merger sans créer de nouveau commit :

git merge --no-commit nouvellebranche

Puis modifier/corriger les fichiers et enfin d'ajouter et de commiter les changements manuellement

Il est alors aussi possible d'annuler un merge avec un :

git merge --abort

Récupérer un dépot distant avec :

git clone url_distant

Dans ce cas, l'origine du dépot distant est mémorisé dans “origin”.

git fetch permet de récupérer les branches distantes. Attention, git pull ⇔ git fetch

git pull # récupère les sources et merge les différences
git fetch # récupère les sources sans fusionner

git pull = git fetch + git merge FETCH_HEAD

Pour voir les différences avec le dépot distant :

git remote -v
git branch -r # pour voir les branches distantes connues localement
git branch -vv # si la branche loclae est trackée
  • technique/git/git_avancees.1578158522.txt.gz
  • Dernière modification : 2020/04/11 02:26
  • (modification externe)