Git



Ignorer le contenu d'un dossier sauf un fichier
# Ignore everything
*

# But not these files...
!.gitignore
!script.pl
!template.latex
# etc...
Éditer la configuration global de Git
git config --global --edit

Réinitialise la HEAD actuelle à l’état spécifié
git reset <file>
Récupère les branch de l'origin
git remote update origin --prune
Liste toutes les branches
git branch -a
Réinitialise le fichier
git checkout <file>
Réapplique les commits sur une branche
git rebase <branch>
Annule un rebase
git rebase --abort
Manage reflog information
git reflog
Compare les différences entre deux commits
git diff <sha1-commit-id 1> <sha1-commit-id 2>

Supprime une branche locale
git branch -d <branch>
Supprime une branche distante
git push origin --delete <the_remote_branch>
Restaure une branche supprimée
git branch <branch> <hash de la dernière ligne du reflog en rapport avec la branche>

Récupère toutes les branches
git fetch --all
Sort le fichier de l'index courant
git reset HEAD <file>
Récupère l'état de la branch sur le repo
git reset --hard origin/<branch>
Rollback à l'état avant le dernier commit
git reset (--hard) HEAD~1
Rollback à l'état avant un commit
git reset (--hard) <sha1-commit-id>
Push en force
git push origin <branch> --force

Renomme une branche
git branch -m <oldname> <newname>
Renomme la branche courante
git branch -m <newname>

Déplace un commit vers la branche courante
git cherry-pick <id_du_commit>
Récupère la version du fichier 'filename' depuis la branche du serveur <branch>
git checkout origin/<branch> filename
Affiche le nom du dernier user à avoir modifié la ligne, pour chaque ligne
git blame <chemin du fichier>
Annule un commit en particulier
git revert <numero du commit>
Annule un revert en cours
git revert --abort

Liste la pile des stash
git stash list
Affiche la list des stash
git stash show
Applique le stash en question
git stash apply stash@{<numéro du stash>}
Renomme un commit
git commit --amend -m <Nouveau message pour le commit>
Suppression de toutes les branches locales dont l'origin n'existe plus
git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d
How do I remove files saying “old mode 100755 new mode 100644” from unstaged changes in Git?
git config core.filemode false

Créer un alias
git config --global alias.unadd "reset HEAD"