Je ne présente plus Git. C'est un outil impressionant mais également assez difficile à apréhender, notamment au niveau des commandes dont le nom n'est pas toujours logique.

Voici donc une cheat sheet comme je les aime pour vous aider à vous y retrouver. Elle est principalement destinée à m'aider moi-même, c'est pourquoi elle peut sembler incomplète. Vous trouverez sur le web des équivalents bien plus complets.

Supprimer un fichier du repository mais le garder en local

$ git rm --cached file1.txt
$ git commit -m "Removes unnecessary file."
$ git push origin master

Modifier l'auteur d'un commit

$ git commit --amend --author="Author Name <email@address.com>"

Annuler les modifications locales (discard)

Pour conserver les modifications en vue d'une éventuelle réutilisation :

git stash

Pour annuler les modifications de manière permanente pour un fichier en particulier :

git checkout -- <fichier>

Pour annuler toutes les modifications de tous les fichiers de manière permanente, c'est à dire revenir à l'état du dernier commit :

git reset --hard

Annuler un commit en local et répercuter sur le remote

git reset <<commit hash>> --hard
git push <<remote>> -f

Changer la branche sur laquelle un commit a été fait

Annuler le dernier commit mais conserver les changements effectués.

git reset HEAD~ --soft
git stash

Se déplacer vers la bonne branche et faire le commit.

git checkout name-of-the-correct-branch
git stash pop
git add . # or add individual files
git commit -m "your message here"

Supprimer tous les fichiers qui sont dans le .gitignore du repository

git ls-files -i --exclude-from=.gitignore | xargs git rm --cached

Quelques liens utiles: