Cette antisèche Git regroupe un lot de commandes très utilisées lorsque l’on commence avec Git ou que l’on utilise Git au quotidien. L’article listera les commandes détaillées dans des précédents articles sur le sujet :
- Adapter son workflow de développement avec Git
- Les commandes de bases Git
- Git : Branches, merge, rebase …
- Git : Bisect, git ignores, alias …
Si vous pensez à d’autres commandes intéressantes, n’hésitez pas à utiliser les commentaires pour me les transmettre je complèterai l’antisèche.
Commandes de bases
En savoir plus sur une commande :
git help nom_commande git nom_commande --help
Récupérer un dépôt via le système :
# mettre le contenu du dépôt dans le répertoire courant, ce dernier doit être vide. git clone <URL_DEPOT> . # ou mettre le dépôt dans un répertoire créé automatiquement au nom du projet git clone <URL_DEPOT>
Mettre à jour le dépôt local :
git pull
Vérifier l’état de votre dépôt en local :
git status
Placer de nouveaux fichiers à l’index ou ré-indexer un fichier modifié :
git add FileName # la commande add de git accepte les patterns, quelques exemples git add . git add * git add src/*
Enlever un fichier de l’index :
git reset chemin/du/fichier
Supprimer un fichier dans l’index :
# pour un fichier git rm filename # pour un dossier git rm -r folderName
Déplacer ou renommer un fichier dans l’index :
git mv ancien/chemin nouveau/chemin git mv ancien_nom nouveau_nom
Annuler les modifications d’un fichier :
git checkout -- votreFichier # cette commande prends les patterns git checkout -- src/java/test/*
Commit des modifications :
git commit -m "Le message de votre commit" # modifier le dernier commit git commit --amend # modifier uniquement le message du dernier commit git commit --amend -m "Mon nouveau message"
Envoyer les commits sur le dépôt distant :
# sur le master courante git push # sur une branche spécifique git push origin <branchName>
Gérer les branches
Pour récupérer la liste des branches disponible en local :
git branch
Récupérer la liste des branches du dépôt distant :
git branch -r
Création d’une branche :
git branch monNomDeBrancheACreer
Créer une branche et la récupérer:
git checkout -b monNomDeBrancheACreer
Changer de branche :
git checkout brancheARecuperer
Supprimer une branche :
git branch -d branchASupprimer
Merge de deux branches :
# Aller sur le master git checkout master # merger la branche correctif pour intégrer les modifications dans le master git merge correctif
Le fast forward :
# merger la branche correctif avec la traçabilité du merge git merge --no-ff brancheAMerge
Rebase
# On créé la branche sur laquel nous allons dev git checkout -b Branche_de_dev # Après nos devs, on va cherche les modifications du dépôt git checkout master git pull master # On intègre les modifications du dépôt à la branche avec le rebase git checkout Branche_de_dev git rebase master
Annuler des modifications
Annuler le dernier commit en gardant les modifications de ce commit :
git reset md5_commit_précédent
Annuler le dernier commit en supprimant les modifications de ce commit :
git reset --hard md5_commit_précédent
Git Ignore
Remplir le fichier .gitignore :
# ignorer le fichier toto.txt à la racine du projet /toto.txt # ignorer tous les fichiers .project de Eclipse du projet .project # ignorer tous les fichiers compilés java (.class) du projet *.class # ignorer tous les dossiers de configurations Eclipse ".settings" et leurs contenus .settings/ # ignorer tous les fichiers dont l’arborescence termine par /docroot/WEB-INF/.gitignore **/docroot/WEB-INF/.gitignore
Git Ignore global :
# Définition du fichier .gitignore_global à la racine de l'utilisateur courant comme fichier Git Ignore global git config --global core.excludesfile ~/.gitignore_global
Bisect
Commencer une bisection :
# lance la bisection git bisect start # Explique à git que la révision courante contient le bug git bisect bad
Renseigner un numéro de commit où le bug n’existait pas :
git bisect good md5_bon_commit
Après un round, si le bug est toujours présent :
git bisect bad
Après un round, si le bug n’est plus présent:
git bisect good
Terminer la bisection :
git bisect reset
Garder temporairement ces changements non commité
# Sauvegarde votre travail non commité sur une branche git stash save # Permet de voir ce qu'il y a dans le stash git stash show # Récupérer vos modifications stockées dans le stash git stash pop
Voir les différences avec un autre état :
Faire la différence entre le répertoire de travail et l’index :
git diff # voir la différence pour le fichier monFichierSource.java git diff src/main/java/monpackage/monFichierSource.java
Faire la différence entre l’index et le dépôt :
git diff --cached
Faire la différence entre l’état courant par rapport à la dernière version commitée :
git diff HEAD
Faire la différence entre la dernière version commitée et la révision précédente :
git diff HEAD^
Quelques exemples supplémentaires :
# permet d’ignorer les différences d’espaces et d’indentations git diff -b # permet d’ignorer les différences d’espaces et indentations au sein de la même ligne, mais indique les lignes vides ajoutées ou supprimées git diff -w # donne les statistiques de modification par dossier git diff --stat # donne les statistiques de modification entre la dernière version commitée et 4 commits avant. git diff --stat HEAD~4
Lister les modifications
Lister les commits qui ne sont pas encore push sur le dépôt central :
git log origin/master..HEAD
Lister les différences de fichiers depuis le dernier push sur le dépôt :
git diff origin/master..HEAD
Configurer et utiliser les outils de diff et de merge
Cas d’utilisation : Git pour interagir avec DiffMerge sur MacOS X
Configurations:
# difftool git config --global diff.tool diffmerge git config --global difftool.diffmerge.cmd "/usr/bin/diffmerge \"\$LOCAL\" \"\$REMOTE\"" # mergetool git config --global merge.tool diffmerge git config --global mergetool.diffmerge.trustExitCode true git config --global mergetool.diffmerge.cmd "/usr/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""
Utilisations:
# Voir toutes les différences avec l'index, va proposer l'ouverture du diff tool pour chaque fichier modifié git difftool # Voir toutes les différences avec l'index du fichier monFichierSource.java git difftool src/main/java/monpackage/monFichierSource.java # Merger les conflits sur le fichier monFichierSourceEnConflit.java git mergetool src/main/java/monpackage/monFichierSourceEnConflit.java
Créer des alias pour git
En ligne de commande :
# créer l'alias "git co" pour "git checkout" git config --global alias.co checkout # créer l'alias "git p" pour "git push" git config --global alias.p push
Via le fichier .gitconfig :
[alias] p = push co = checkout
Alias commun :
[alias] p = push co = checkout b = branch st = status a = add ci = commit cim = commit -m
Partager l'article :





Ping : LdS S27-2016 | Anayrat.info