technique:git:git_avancees

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édentes Révision précédente
Prochaine révision
Révision précédente
technique:git:git_avancees [2020/04/26 00:30] francoisatechnique:git:git_avancees [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Git : fonctionnalités avancées ====== +**Cette page est obsolèteVeuillez accéder au contenu à son nouvel emplacement : [[https://bibliotech.cemea.org/books/outils-technique/page/git-avancees|git-avancees]]**
- +
-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. +
- +
-===== 1Création de branches ===== +
- +
-On crée une nouvelle branche au projet, à partir de la branche master +
- +
-<code> +
-git branch nouvellebranche +
- +
-</code> +
- +
-On passe sur la branche nouvellebranche +
- +
-<code> +
-git checkout nouvellebranche +
- +
-</code> +
- +
-ou plus directement : +
- +
-<code> +
-git checkout -b nouvellebranche +
- +
-</code> +
- +
-On peut faire des commits (git add & git commit) sur cette brancheOn peut aussi repasser sur la branche principale et en faire d'autres. +
- +
-<code> +
-git checkout master +
- +
-</code> +
- +
-Il est aussi possible de venir se placer sur un commit, une branche ou un tag précédent : +
- +
-<code> +
-git checkout nomcommit +
-git checkout vieillebranche +
-git checkout nomtag +
- +
-</code> +
- +
-(Voir git checkout -h) +
- +
-===== 2. Fusion de branche (merge) ===== +
- +
-On repasse sur la branche master +
- +
-<code> +
-git checkout master +
- +
-</code> +
- +
-Et on fusionne la branche souhaitée vers la branche en cours (master) +
- +
-<code> +
-git merge nouvellebranche +
- +
-</code> +
- +
-Puis on peut supprimer la branche en cours : +
- +
-<code> +
-git branch -d nouvellebranche # Si status est à jour +
-ou +
-git branch -D nouvellebranche # si pas fusionnée +
- +
-</code> +
- +
-===== Gestion de conflits ===== +
- +
-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 : +
- +
-<code> +
-git add fichiers_en_conflit +
-git commit +
- +
-</code> +
- +
-Il est possible d'utiliser des outils comme : +
- +
-<code> +
-git mergetool fichier_en_conflit +
- +
-</code> +
- +
-Il est possible de merger sans créer de nouveau commit : +
- +
-<code> +
-git merge --no-commit nouvellebranche +
- +
-</code> +
- +
-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 : +
- +
-<code> +
-git merge --abort +
- +
-</code> +
- +
-===== Travail collaboratif ===== +
- +
-Récupérer un dépot distant avec : +
- +
-<code> +
-git clone url_distant +
- +
-</code> +
- +
-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 +
- +
-<code> +
-git pull # récupère les sources et merge les différences +
-git fetch # récupère les sources sans fusionner +
- +
-</code> +
- +
-git pull = git fetch + git merge FETCH_HEAD +
- +
-Pour voir les différences avec le dépot distant : +
- +
-<code> +
-git remote -+
-git branch -r # pour voir les branches distantes connues localement +
-git branch -vv # si la branche loclae est trackée +
- +
-</code> +
- +
-===== Ajout d'un dépot supplémentaire distant ===== +
- +
-<code> +
-git remote add nomchoisi urldepot.git +
- +
-git fetch nomchoisi +
- +
-</code> +
- +
-Et pour mettre à jour le dépot local vers ce dépot distant : +
- +
-<code> +
-git push -u nomchoisi master +
- +
-</code> +
- +
-Attention, il faudra metre à jour les 2 dépots de manière manuelle. Par exemple : +
- +
-<code> +
-git push heroku master +
- +
-git push -u nomchoisi master +
- +
-</code> +
- +
  • technique/git/git_avancees.1587853855.txt.gz
  • Dernière modification : 2020/04/26 00:30
  • de francoisa