Memo GIT ligne de commande

De Didaquest
Aller à la navigationAller à la recherche

assurer que git soit bien installé

git --version

configurer ses nom et prénom

git config --global user.name "<prénom> <nom>"

configurer son adresse mail

git config --global user.email "<adresse@mail.tld>"

activer la coloration syntaxique (optionnel)

git config --global color.ui auto

configurer un nouveau / existant projet (à faire dans le bon dossier)

git init

voir les nouveaux fichiers créés, la branche actuelle,...

git status

ajouter un fichier dans le repository

git add index.html
git commit -m 'premier commit de la page l\'accueil'

Cloner un repository

  • La commande git-clone:

La commande git-clone utilise en premier argument l'adresse d'un repository. Si l'on n'indique pas le protocole avec le caractère : au début de l'adresse, il est possible de spécifier un répertoire du repository en utilisant ce caractère après l'adresse.

git clone git@github.com:monDossier

En utilisant cette commande, cela va créer un répertoire appelé monDossier dans lequel sera téléchargé le contenu du repository. Si vous souhaitez créer un répertoire spécifique, il suffit de l'indiquer en deuxième argument de la commande.

#Le contenu sera téléchargé dans le dossier où vous vous situez
git clone git@github.com:monDossier .

#Le contenu sera directement téléchargé dans le répertoire repertoire
git clone git@github.com:monDossier adressedurepertoire/repertoire

Remarques :

  • Si le répertoire existe déjà, il est obligatoire qu'il soit vide pour que la commande fonctionne.
  • Si vous souhaitez déplacer un dossier déjà téléchargé sur votre ordinateur, alors il est nécessaire de déplacer également le répertoire .git. En effectuant cette manipulation, vous vous assurez que les commandes git (git pull par exemple) continueront de fonctionner après le déplacement.

Cloner une branche

Git permet de cloner n'importe quelle branche d'un dépôt. Il suffit pour cela d'utiliser la commande git clone.

Le système de gestion de versions Git permet d'administrer les différentes phases de développement de notre projet. Il est possible de cloner n'importe quelle branche du dépôt de votre projet. Il suffit pour cela d'utiliser la commande git clone

git clone git://example.com/monprojet

Mais une fois la branche clonée, si vous essayez de lister les branches avec la commande git branch, vous ne les verrez pas toutes. Pour être sûr de toutes les voir, il faut utiliser l'option -a. Exemple avec git branch :

git branch
* master
  • Exemple avec l'option -a :
git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental

Il est possible de récupérer une branche pour voir son contenu avec la commande git checkout. Si vous souhaitez travailler sur cette branche, il faut créer une branche locale avec l'option -b. Exemple :

git checkout -b experimental origin/experimental

Naviguer sur les branches interface graphique

  • Si vous avez trop de branches et que vous avez des difficultés pour vous y retrouver, la commande gitk permet de lancer une interface graphique capable de naviguer dans un dépôt git.

Commande pour lancer l'interface graphique :

gitk --all &

avoir un résumé des changements effectués sur les fichiers locaux

git diff

avoir une comparaison des fichiers ligne par ligne

git diff --color-words

voir le fichier de log

git log

voir le fichier de log plus succint

git log --oneline

restaurer un fichier modifié par sa version précédente

git checkout <nom-fichier>

restauration dépôt, index et répertoire de travail

git reset --hard <reference-commit>

restauration dépôt et index

git reset --mixed <reference-commit>

restauration dépôt

git reset --soft <reference-commit>

Revenir à une version antérieure "Revert Git"

  • Revert Git : revenir à une version antérieure de votre repo Git en annulant un commitLe logiciel de gestion de versions offre de nombreuses possibilités dans la gestion des changements qui sont effectués sur un répertoire de travail.

Le logiciel de gestion de versions Git offre de nombreuses possibilités dans la gestion des changements qui sont effectués sur un répertoire de travail. Il est possible de revenir à une version antérieure de son travail.

  • La première chose à faire pour revenir à une version antérieure est d'abord de repérer cette version. La commande git log liste les différents commit (enregistrements) effectués. La chaîne de caractères situé à côté du mot commit permet d'identifier l'enregistrement. Elle sera utilisée dans toutes les commandes nécessitant un numéro d'enregistrement :

git log

qui affichera le numéro a prendre:

commit 3u38t0qn00p1sr1o8012r16kp2nsxcmul1w426w5
Author: Moi
Date: Mon Aug 1 10:00:00 2016 -0400
  • La démarche est ensuite différente selon votre situation. Elle dépend du travail que vous souhaitez effectuer à partir de cette version antérieure mais aussi des commits effectués depuis.
  • Si vous souhaitez simplement visualiser ou copier des lignes de code sans apporter aucune modification: il faut utiliser la commande git checkout en spécifiant le numéro du commit. Le répertoire de travail sera alors mis à jour pour correspondre à la version spécifiée :
git checkout 3u38t0qn00p1sr1o8012r16kp2nsxcmul1w426w5

Il est possible de créer une nouvelle branche à partir de cette version grâce à la commande git checkout :

git checkout -b old-state 3u38t0qn00p1sr1o8012r16kp2nsxcmul1w426w5

Pour revenir à la version actuelle de votre répertoire de travail, il faudra refaire un check-out.

Il est possible de revenir en arrière et de supprimer toutes les modifications qui ont été enregistrées depuis la révision mais la commande ne sera pas la même si vous ayez publié les commits ou non.

- Si vos commits n'ont pas été publiés, il suffit de revenir à la version antérieure du répertoire de travail grâce à la commande git reset :
git reset --hard 3u38t0qn00p1sr1o8012r16kp2nsxcmul1w426w5
- Si vous possédez des modifications non enregistrées dans votre répertoire de travail et que vous souhaitez les conserver, il faut exécuter en plus la commande get stash.
git stash #sauvegarde les modifications
git reset --hard 3u38t0qn00p1sr1o8012r16kp2nsxcmul1w426w5 #remet à zéro le répertoire de travail par rapport à la révision spécifiée
git stash pop #applique les modifications sauvegardées
- Si un fichier est concerné à la fois par les modifications en cours et le retour à la version antérieure du répertoire de travail, il y aura un conflit à résoudre.
- Si les commits ont été publiés, il est possible de créer un patch qui correspondra aux modifications à effectuer pour revenir en arrière, puis enregistrer les modifications avec un nouveau commit :
commande pour créer le patch qui applique la révision demandée au répertoire de travail
git revert 3u38t0qn00p1sr1o8012r16kp2nsxcmul1w426w5
il est également possible d'utiliser la commande en donnant un nombre d'enregistrements que l'on souhaite annuler (4 dans cet exemple)
git revert HEAD~4..HEAD
Vous pouvez ensuite sauvegarder votre travail. Pensez à bien spécifier ce que vous avez fait dans le message d'enregistrement
git commit

créer une branche

git branch <nom-nouvelle-branche>

vérifier la branche dans laquelle vous vous situez

git branch

changer de branche

git checkout <nom-branche>

retourner dans la branche principale

git checkout master

fusionner une autre branche avec la principale

git merge <nom-branche>

Effacer une branche Git à la fois locale et distante

Vous pouvez supprimer complètement une branche au sein d'un dépôt Git. Il faut pour cela exécuter deux commandes.

  • Le logiciel Git fournit un système de branches en plus de la gestion des versions. Les branches permettent de travailler sur un élément à part dans un projet. On peut par exemple en créer une pour travailler sur une nouvelle fonctionnalité ou la résolution d'un problème. Lorsque le travail effectué sur la branche est terminé, on l'intègre dans le répertoire de travail principal grâce à la commande git merge.
  • Une fois le travail terminé sur une branche, vous pouvez la supprimer du dépôt. Il faut pour cela exécuter deux commandes, une pour chaque branche :
  • Supprimer branche local : celle qui existe en local sur votre ordinateur ;
celle qui existe sur le dépôt distant.

Pour supprimer une branche locale sur votre ordinateur, la commande est la suivante :

git branch -d [nom_de_la_branche]

Cette commande vous affichera un avertissement si la branche n'a pas été totalement fusionnée avec le répertoire principal du dépôt. Pour passer outre cet avertissement, on utilise l'option -D :

git branch -D [nom_de_la_branche]
  • Supprimer branche distante : Pour supprimer la branche située sur le dépôt distant, la commande est différente selon la version de git utilisée. :::- Si la version de Git est antérieure à la version 1.7.0, la syntaxe est la suivante :
git push [nom_du_depot_distant] :[nom_de_la_branche]

Si vous avez utilisé la commande git clone pour créer la branche, celle-ci attribue par défaut le nom origin au dépôt distant. La syntaxe de la commande devient :

git push origin :[nom_de_la_branche]
- Si vous utilisez une version de git plus récente, la syntaxe de la commande a été modifiée pour être plus facile à mémoriser :
git push origin --delete [nom_de_la_branche]

Une fois cette commande effectuée, vous devrez exécuter la commande suivante sur tous les autres ordinateurs afin de propager le changement :

git fetch --all -prune

connecter le repository local à celui de GitHub

git remote add origin <github-repository-url>

publier les changements sur GitHub

git push origin <nom-branche>

récupérer la dernière version du repository de GitHub

git clone <github-repository-url>

récupérer les changements effectués

(utile quand plusieurs personnes développent en même temps)

git pull origin <nom-branche>