Try   HackMD

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Git - Commandes De Base

Initialisation - Démarer le projet git

  • 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, il accepte 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>"

--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 : Adficche la différence entre les 2 derniers commits
  • git commit -am "<message>" : Combine les deux opérations précédentes

Conseil pour réaliser un bon message de commit
  • 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>

Modification

git diff

Git add .

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

ERREUR

OK

Modification Version 3

git checkout version 2

git stash save message

  • git stash list : Affiche les stashs

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

  • git stash pop <stash-ID> : Reintè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écuprer 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)

git checkout branche-B

git rebase master

git checkout master

git merge branche-B

branche master

branche-B

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éf[1]

Effectuer une recherche par mot clé dans les commit

  • git log --grep <expression>

Suivre ce lien pour plus de détail

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


  1. Explications supplémentaires : https://stackoverflow.com/questions/5798930/git-rm-cached-x-vs-git-reset-head-x ↩︎