preloader

Aide-Mémoire Sur Les Commandes Git

Aide-Mémoire Sur Les Commandes Git
Par Nicolas Malet / Publié le 05.02.2020

Voici une liste de commandes git qui t’aidera à gérer et versionner tes projets web pas à pas.

Initialisation

git init : initialiser un nouveau dépôt Git. Jusqu’à ce que tu exécutes cette commande dans un dépôt ou répertoire, c’est juste un dossier ordinaire.

Seulement après avoir entré cette commande, tu peux entrer les commandes Git qui suivent.

Configuration

git config -l : lire le contenu de la configuration.

git config : configurer Git, ceci est tout particulièrement utile quand tu paramètres Git pour la première fois.

  • git config --global user.name "<user-name>"
  • git config --global user.email "<contact@gmail.com>"

Info :

--global définir la configuration de manière globale. Tu ne seras pas obligé de configurer chaque dépôt séparément.

git remote add origin <url> : indiquer le répertoire Git a utiliser sur le serveur github (utiliser la méthode ssh -> public key).

git push --set-upstream origin master : permettre de téléverser le répertoire local vers le répertoire Git sur le serveur.

git submodule add <host> : ajouter un projet externe dans le projet principal.

.gitignore : lister les fichiers ou dossiers à ignorer (important pour les mots de passe).

Tester la connexion

git ls-remote

Indexation

git status : vérifier le statut du repository. Voir quels fichiers sont à l’intérieur, quelles sont les modifications à ”commiter”, et sur quelle branche du repository tu es en train de travailler.

git add <nomDeFichier> : ajouter les fichiers et modifications à l’index.

git add . : ajouter tous les fichiers.

git rm --cached <fichier> ou git reset <fichier> : supprimer les modifications de l’index.

git commmit -m "<message>" : créer un commit.

  • git diff HEAD^ HEAD : afficher la différence entre les 2 derniers commits.

git commit -am "<message>" : combiner les deux opérations précédentes.

Un sujet

Une ligne blanche

Une description

Ne pas hésiter à créer un commit même pour une modification mineure

git diff <fichier> : afficher la différence entre le dernier commit et les nouvelles modifications (à faire avant git add) - sinon git diff ---cached <fichier>

graph LR modif( Modification fa:fa-floppy-o ) -.-> diff(git diff) diff -.-> add(Git add .) add -.-> diffC(git diff --cached)

Info :

HEAD est un tag indiquant le commit sur lequel on se situe.

Indexer de manière provisoire

git stash save "message" : mettre de côté les modifications.

graph LR v1(Modification Version 3) -.-> |ERREUR|check(git checkout version 2) v1 --> stash("git stash save message") stash --> |OK|check

git stash list : afficher les “stashs”.

git stash show <stash-ID> : afficher plus d’informations sur le stash.

git stash pop <stash-ID> : réintégrer les modifications (avant commit).

git stash apply : rec avant commit.

Historique des commits

git log : afficher la liste de tous les commits réalisés.

  • git log --online : afficher seulement l’entête des commits.
  • git log -n 2 : afficher les 2 derniers commits.
  • git log <nomDeLabranche>
  • git log -a : afficher tous les commits après avoir fait git fetch.

git show <SHADuCommit> | <tag> : afficher un commit précis (même affichage que git diff).

git checkout <sha-1> | <tag> : se placer sur un commit, git checkout master pour revenir.

Branches et Tags

git branch : voir les branches.

git branch <nomDeLaBranche> : créer une nouvelle branche.

  • git branch -d <nomDeLabranche> : supprimer la branche locale.
  • git push origin --delete <nomDeLabranche> : supprimer la branche sur le dépôt distant.
  • git branch -a : afficher toutes les branches locales et distantes.

git checkout <nomDeLaBranche> : sélectionner une autre branche.

git checkout -b <nomDeLaBranche> : créer une branche et se placer dessus.

  • git tag : afficher la liste de tous les tags.
  • git tag <tag-name> : attribuer un tag au commit.
  • git tag --delete <tag-name> : supprimer le nom du tag.
  • git push --tags : mettre à jour les tags sur le dépôt distant.

git blame <fichier> : afficher toutes les modifications d’un fichier.

Gérer les dépôts distants

git commit --amend -m "<nouveau message>" : modifier le message du derniers commit.

git remote -v : afficher la liste des distants.

git remote add : cloner le dossier sur le serveur (utiliser la méthode ssh -> public key).

git clone <host>... : importer le dossier repository.

Publier les commits sur un dépôt distant

git push [origin master] : mettre en ligne les commits.

  • git push --tag : publier les commits de tous les tags (Release).
  • git push --all : publier les commits de toutes les branches.
  • git push -f : forcer la publication des commits.

git pull : mettre a jour la version locale (Réalise un merge si il y a conflit).

  • git merge --abort : annuler git pull si il y a conflit.
  • git pull --rebase : mettre a jour la version locale. Résoudre le conflit, faire un commit puis git rebase --skip

git fetch : cette commande s’adresse au dépôt distant et récupère toutes les données de ce projet que vous ne possédez pas encore.

git diff HEAD...origin/master : cette commande produit une différence entre le sommet de 2 banches. Si tu préfère trouver la différence de leur ancêtre commun, tu peux utiliser 3 points au lieu de 2.

git diff master...test

Récupérer un commit

git cherry-pick <SHADuCommit> : replacer un commit d’une branche à une autre.

Merge et Rebase

git checkout <branche A> puis git merge <branche B> : fusionner la branche A et B dans A.

Pour avoir un travail mieux organisé (plus propre)

graph LR A(master) -->|git checkout branche-B| B(branche-B) B -->|git rebase master| B B --> |git checkout master| A A --> |git merge branche-B| A

Annuler un commit

git commit --amend : ajouter des changements au derniers commit

git reset : annuler l’indexation

git reset [--soft] <fichier>|<commit-(c-1)> : annuler un commit mais garder les changements

git reset [--hard] <fichier>|<commit-(c-1)> : annuler un commit mais sans garder les changements

A noter :

L’annulation fait qu’on se repositionne sur un commit antérieur

git revert <SHADuCommit> : annuler ou créer un commit inverse

réf1

Aide

git help : afficher les 21 commandes les plus courantes de Git. Tu peux aussi être plus spécifique et saisir “git help init” ou tout autre terme pour voir comment utiliser et configurer une commande spécifique git

Avant de réaliser un “git pull”

  1. git fetch
  2. git log HEAD..origin/master
  3. git log -p HEAD..origin/master
  4. git diff HEAD...origin/master

Submodule git

Ajouter un sous dépot git avec “submodule”

git submodule add <host> <path/to/dir>

Réaliser un “git pull” pour un “submodule”

La première fois, on peut extraire tous les sous-modules en utilisant

git submodule update --init --recursive

Pour mettre à jour les sous-modules, on peut faire

git submodule update --recursive --remote

Supprimer un sous-module

  1. Supprime la section appropriée du fichier .gitmodules.
  2. Exécute la commande git add .gitmodules pour mettre à jour les changements.
  3. Supprime la section appropriée dans .git/config.
  4. Exécute la commande git rm --cached path_to_submodule (aucune barre oblique finale).
  5. Exécute la commande rm -rf .git/modules/path_to_submodule (pas de barre oblique finale).
  6. Exécute la commande git commit -m "Sous-module supprimé".
  7. Supprime les fichiers de sous-module maintenant non suivis rm -rf path_to_submodule.

réf : https://gist.github.com/myusuf3/7f645819ded92bda6677

comments powered by Disqus