Git/Avancé

Un livre de Wikilivres.
< Git
Aller à : navigation, rechercher

Vérifier les dépôts distants[modifier | modifier le wikicode]

Pour télécharger un dépôt distant :

$ git clone ssh://utilisateur@serveur.com:port/remote/chemin/du/depot

Ensuite les commandes des chapitres précédents deviennent disponibles.

Après un certain temps il peut s'avérer nécessaire de revérifier si ce dépôt distant s'est mis à jour. Un git pull permet de le savoir en le fusionnant du même coup dans son dépôt local. Pour mettre à jour le dépôt distant avec cette fusion, utiliser git push :

$ git pull /chemin/distant/du/depot

ou préférablement

$ cd depot
$ git pull

puis

$ git push

Vérifier les dépôts locaux[modifier | modifier le wikicode]

git clone fonctionne aussi pour les dépôts locaux :

$ git clone /chemin/local/du/depot

Vérifier les branches distantes[modifier | modifier le wikicode]

Pour lister les branches disponibles du dépôt distant :

$ git branch -r
 origin/HEAD -> origin/master
 origin/master

Regarder celle qui s'appelle "origin" :

$ git remote show origin
 * remote origin
   Fetch URL: https://gerrit.wikimedia.org/r/p/test/mediawiki/extensions/examples
 .git
   Push  URL: https://gerrit.wikimedia.org/r/p/test/mediawiki/extensions/examples
 .git
   HEAD branch: master
   Remote branch:
  master tracked
   Local branch configured for 'git pull':
  master merges with remote master
   Local ref configured for 'git push':
  master pushes to master (up to date)

Récupérer cette branche distante :

$ git pull origin BrancheLocale:BrancheDistante

Envoyer dans cette branche distante :

$ git push origin BrancheLocale:BrancheDistante

Créer une branche locale à partir de la distante :

$ git checkout -b BrancheLocale origin/maint

Effacer cette branche distante :

$ git push origin :BrancheDistante

Synchroniser les branches appelées "origin" :

$ git fetch origin

Étiquetages[modifier | modifier le wikicode]

Git permet d'ajouter des étiquettes (tags en anglais) spécifier des choses dans les historiques[1] :

$ git tag -a tag1

ou :

$ git tag -f tag1 HEAD

Pour lister les tags :

$ git tag

Envoyer les étiquettes sur le serveur distant :

$ git push --tags

Étiquettes vs branches[modifier | modifier le wikicode]

Les étiquettes comme les branches pointent vers une soumission, la différence est que la branche pointe toujours en haut de la ligne de développement et sont remplacées par les soumissions postérieures, alors que l'étiquette demeure inchangée.

Créer et appliquer un patch[modifier | modifier le wikicode]

Créer un patch génère un texte de toute la série des changements entre les branches origines et master.

$ git format-patch origin/master

Pour appliquer un patch :

$ git apply --stat  P1.txt  # affiche les stats des changements
$ git apply --check P1.txt  # vérifie les problèmes
$ git am < P1.txt           # applique le patch dans l'ordre

Références[modifier | modifier le wikicode]

  1. http://git-scm.com/book/fr/Les-bases-de-Git-%C3%89tiquetage