Mémo rapide sur quelques commandes Git

Georges KEMAYO

Je vous présente ici un petit mémo sous forme de tableau récapitulatif, une cinquantaine de commandes Git simples, fortement utilisées et relativement suffisantes pour de la gestion et le versioning de projets collaboratifs par une équipe de développement.

- Titre : Mémo rapide sur quelques commandes Git

- Auteur : Georges KEMAYO

- Parution : 21 mai 2020

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2020 Georges KEMAYO. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Mémo Git

- II. Pour aller plus loin

I - Mémo Git

Commande Git

Description succinte

1.

git branch newBranch

Crée dans le repo local la nouvelle branche newBranch qui est un fork de la branche courante.

2.

git branch -m locBranch

Renomme la branche courante avec le nouveau nom locBranch.

3.

git branch -d locBranch

Supprime la branche locBranch du repo local.

4.

git branch -u origin/remBranch

Ordonne à la branche courante de traquer la branche distante remBranch.

5.

git branch --track locBranch origin/remBranch

Similaire à la commande numéro 4, à la différence qu'on explicite la branche locale qui traque : locBranch.

6.

git branch -v

Liste les branches sur le repo local.

7.

git branch -v -a

Liste les branches sur le repo distant.

8.

git branch -r | wc -l

Compte le nombre de branches effectivement présentes sur le repo distant.

9.

git branch --merged

Liste toutes les branches ayant subies un merge vers d’autres branches.

10.

git branch --no-merged

Liste toutes les branches n’ayant jamais subies un merge.

11.

git log

Affiche l’historique des commits effectués sur la branche courante avec leurs SHA1 (très verbeux).

12.

git log --pretty=oneline

Affiche l’historique des commits effectués sur la branche courante, chaque commit tenant uniquement sur une ligne.

13.

git log --name-status HEAD^..HEAD

Liste tous les commits récents effectués, mais non encore pushés.

14.

git tag nomTag

Crée un tag de nom nomTag sur la branche courante.

15.

git show nomTag

Donne les détails sur le tag nomTag de la branche courante.

16.

git tag

Liste tous les tags placés sur la branche courante.

17.

git stash

Remet en cache (appelé Remise) les modifications sur la branche courante.

18.

git stash list

Liste tous les stash sur le repo local.

19.

git stash show

Permet de voir la liste des fichiers modifiés du dernier stash.

20.

git stash apply

Applique le tout dernier stash dans la pile des stash du cache de git.

21.

git stash apply stash@{n}

Applique le stash numéro n dans la pile des stash du cache de git.

22.

git stash pop

Supprime le tout dernier stash dans la pile des stash du cache de git.

23.

git stash pop stash@{n}

Supprime le stash numéro n dans la pile des stash du cache de git.

24.

git clone urlRepoDistant

Clone le projet du repo distant vers un repo local (répertoire courant).

25.

git clone urlDistant pathRepoLocal

Clone le projet du repo distant en précisant le répertoire pathRepoLocal qui constituera le repo local.

26.

git remote prune origin

Supprime toutes les branches mergées et inutiles sur le repo distant.

27.

git fetch origin --prune

Similaire à la commande numéro 26.

28.

git remote update origin --prune

Synchronise le repo local à partir du repo distant.

29.

git push origin –-delete remBranch

Supprime la branche de nom remBranch du repo distant.

30.

git push -u origin newBranch

Pousse la branche locale courante sur le repo distant au nom de newBranch.

31.

git push --set-upstream origin newBranch

Similaire à la commande numéro 30.

32.

git push

Pousse les commits de la branche locale courante vers celle distante traquée.

33.

git fetch

Actualise et vérifie si la branche locale courante est iso ou non à celle du repo distant.

34.

git pull

Réalise la commande 33 et en même temps récupère en local, les éventuels commits présents sur celle distante trackée.

35.

git checkout locBranch

Changement de branche : passage de la branche courante à la branche locBranch.

36.

git checkout -b locBranch origin/rembranch

Créer à partir de la branche distante rembranch, la branche locale locBranch et switcher vers cette dernière.

37.

git checkout --track origin/rembranch

Similaire à la commande numéro 36. Ici locBranch a le même nom que rembranch.

38.

git cherry-pick commit-sha1

Commit sur la branche courante, un commit identifié par commit-sha1 effectué ailleurs.

39.

git merge locbranch

Merge la branche de nom locbranch dans la branche courante (pas de perte d'historique).

40.

git rebase locbranch

Rebase la branche de nom locbranch dans la branche courante (perte d'historique).

41.

git reset --hard HEAD^

Force l'annulation du dernier commit avec suppression de l'historique.

42.

git revert HEAD^ .. HEAD

Crée un commit inverse annulant le dernier commit pushé sur le repo distant.

43.

git revert commit-sha1

Crée le commit inverse annulant un commit précisé par son commit-sha1.

44.

git config --global clef val

Affecte la valeur val au champ clef de la config global git.

45.

git config --global --unset clef

Supprime la clef de la configuration globale de git.

46.

git config --list

Liste tous les paramètres (clef = valeur) de la config global git.

47.

git checkout -- pathToFile

Annule les modifications en cours effectuées sur le fichier pathToFile.

48.

git rm --cahed pathToFile

Deplace le fichier pathToFile de la zone d'index vers le working set.

49.

git diff pathToFile

Compare les modification en cours du fichier pathToFile par rapport à sa version sur le repo local.

50.

git add pathToFile

Ajoute le fichier modifié pathToFile dans la zone d'index pour qu'il soit prêt à être commité.

51.

git commit -m "commentaire"

Commit dans le repo local tous les fichiers présents dans la zone d'index en ajoutant un commentaire propre obligatoire.

52.

git init

Marque le répertoire courant comme étant un repo local Git. Concrètement crée le dossier .git dans ce répertoire.

53.

git branch --merged | xargs git branch -d

Supprime sur le repo local toutes les branches qui ont été mergée dans une autre branche.

54.

git remote add origin pathToRemoteProject.git

Indique à un repo git local vierge, quel est le repo distant dont il en est l'image.

55.

git remote set-url origin pathToRemoteProject.git

Change sur un repo git local non vierge, l'url du repo distant dont il en est l'image.

II - Pour aller plus loin

Les commandes ci-dessus ne répresentent qu'une infirmité (en nombre) du champ des commandes git possibles, surtout lorsqu'on tient compte de la combinaison des milliers d'options qui peuvent être associées à chacune d'elles. Pour cela, vous pouvez complémenter vos connaissances en regardant la faq git developpez.com et pour une documentation exhaustive, regardez le site officiel de git.