Memo GIT ligne de commande
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
- 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>