preloader

Aide-Mémoire Sur Les Commandes Git

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

Aide-mémoire sur les commandes git

Initialisation

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

Seulement après avoir entré cette commande, vous pourrez 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 vous paramétrez Git pour la première fois.

  • git config --global user.name "<user-name>"
  • git config --global user.email "<contact@gmail.com>"
Info **`--global`** définie la configuration de manière globale. Vous ne serez 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 de votre repository. Voir quels fichiers sont à l’intérieur, quelles sont les modifications à commiter, et sur quelle branche du repository vous êtes 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 : Affiche la différence entre les 2 derniers commits

git commit -am "<message>" : Combine 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)
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 : Affiche les stashs

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

git stash pop <stash-ID> : Réintègre les modifications (avant commit)

git stash apply : rec avant commit

Historique des commits

git log : afficher la liste de tous les commits que vous avez 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 : affiche 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épot 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 vous préférez trouver la différence de leur ancêtre commun, vous pouvez 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> : Fusionne la branche A et B dans A

Pour avoir un travail mieux organisé (plus propre)

graph LR A(branche 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 commmit 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

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 : Oublié une commande ? Tapez-ça dans la ligne de commande pour afficher les 21 commandes les plus courantes de Git. Vous pouvez 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, vous devez:

  1. Supprimez la section appropriée du fichier .gitmodules.
  2. Exécutez la commande git add .gitmodules pour mettre à jour les changements.
  3. Supprimez la section appropriée dans .git/config.
  4. Exécutez la commande git rm --cached path_to_submodule (aucune barre oblique finale).
  5. Exécutez la commande rm -rf .git/modules/path_to_submodule (pas de barre oblique finale).
  6. Exécutez la commande git commit -m "Sous-module supprimé".
  7. Supprimer 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