Git Quick Ref

Page rappelant les principales commandes de Git (sans explications)

Cette page rappelle les principales commandes de git sans explications. Pour en avoir veuillez vous référer par exemple à la page d’explication de git

Configurer

La configuration de git est nécessaire une fois par poste de travail1
git config --global user.name Nom Prenom && git config --global user.email votre_email@enseirb-matmeca.fr
Configuration automatique en utilisant l’annuaire de l’école
ssh LOGIN@ssh.enseirb-matmeca.fr /net/ens/renault/local/bin/init-gitconfig.sh > ~/.gitconfig ou LOGIN est votre login de l’école.

Utilisation quotidienne

Préparer un répertoire de travail

A partir d’un dépôt existant
git clone <url>
A partir d’un dossier existant
git init <dossier>

Hors catégorie

LA commande quand on hésite ou on veut savoir ou on en est
git status

Travailler

Ajouter fichier dans l’index et/ou suivre un fichier
git add <fichier ...>
Supprimer ou ne plus suivre un fichier
git rm [-f] <fichier ...>
Déplacer un fichier 2
git mv <source> <destination>

Fabriquer une version

Créer une version
git commit
Créer une version en ajoutant tous les fichiers ajoutés au moins une fois
git commit -a
Modifier le dernier commit en rajoutant des trucs ou changeant le message
git commit --amend

Travailler avec un serveur

Envoyer vos versions
git push
Récupérer et fusionner les versions les plus récentes
git pull
Récupérer sans fusionner les versions les plus récentes. Il faudra probablement fusionner plus tard.
git fetch [--all]

Regarder ce qui est fait

Regarder les logs
git log --graph --all
Regarder la différence entre le répertoire de travail et le dernier commit
git diff
Regarder la différence limité à un (des) fichier(s)
git diff -- <fichier...>
Regarder la différence entre le répertoire de travail et un commit arbitraire (ici l’avant dernier commit)
git diff HEAD~

Réconcilier les choses

Fusionner deux branches
git merge <branch>
Fusionner la branche courante avec la branche distante.
git merge origin/master
Avancer le travail de votre branche locale sur une branche distante 3.
git rebase origin/master

Un poil plus avancé

Annuler le dernier commit non poussé (une des questions les plus posé sur stackoverflow.com
git reset HEAD~
Ajouter un alias (ici glog)
git config --global alias.glog log --graph --all --oneline

  1. A l’école, les postes de travail sont en réseau. La configuration n’est nécessaire qu’une seule fois. 

  2. Le déplacement n’est pas un concept essentiel dans git, un ajout et une suppression seront transformés en déplacement à postériori. 

  3. Rebaser est une opération compliquée (en plus d’être un barbarisme). Il est possible de faire n’importe quoi, en cas de doute : annulez et faites une fusion classique