Xavier Lamorlette
Sommaire :
git add .
: ajoute tous les fichiers du répertoire courantgit add -u
: met dans l'index tous les fichiers déjà suivis (modifiés et effacés)git blame [fichier]
git branch -v
: liste les branches localesgit branch -r
: liste les branches distantesgit branch -a
: liste les branches locales et distantesgit branch [branche]
: crée une branchegit branch -d [branche]
: efface une branche (interdit si elle n'a pas été fusionnée)
git push origin --delete
git branch -D [branche]
: efface une branche même si elle n'a pas été fusionnéegit branch [x] [y]
: crée une branche x à partir de la révision ygit branch -m [branche]
: renomme la branche courantegit branch -u [branche]
: suit une branche distantegit checkout [branche]
: bascule sur une branchegit checkout [fichier]
: annule tous les changements sur le fichier (revient au dernier commit)git checkout -b [branche]
= git branch [branche] && git checkout [branche]
git checkout -b [x] [y]
= git checkout [y] && git branch [x] && git checkout [x]
git cherry-pick [sha]
: applique un commit sur la branche courante.-a
: enregistre tous les fichiers modifiés et effacés (mais pas les nouveaux)-m "[message]"
: message de description--amend
: amende le dernier commit--fixup [sha]
: indique que le commit en corrige un précédent-b
: ignore les changements de nombre d'espaces-w
: ignore tous les changements sur les espaces--staged
: montre les changements déjà dans l'indexgit diff [sha]^ [sha]
: changements entre un commit et le précédent--prune
: efface localement les branches supprimées sur le dépôt.git
).
--summary
: montre seulement les fichiers modifiés--oneline
: une ligne par commit--decorate
: montre les changements de branches intermédiaires--graph
: visualisation graphiquegit log origin/prod..
: équivalent de hg out
git log ..origin/prod
: à faire après un git fetch
, équivalent de hg in
git merge origin/prod
--no-ff
: “no fast forward” : crée un commit pour ne pas perdre l'information sur l'existence de la branchegit fetch && git merge
.
git push [remote repository] [local branch]:[remote branch]
git push origin [étiquette]
-u
: se souvient des paramètres (notamment le dépôt et la branche) pour le prochain pushgit rebase [branche]
: recopie (et donc change leurs sha1) les commits de la branche courante par dessus ceux de la branche donnée en paramètre.
git reflog
: affiche l'historique des actions
git remote -v
: montre quel est le dépôt de référencegit remote add origin [url du dépôt]
: ajoute un dépôt de référencegit remote set-url origin [url du dépôt]
: change le dépôt de référencegit reset [fichier]
: enlève un fichier de la liste du prochain commitgit reset [sha]
: déplace le head
et nettoie l'indexgit reset HEAD^
: annule le dernier commit et nettoie l'indexgit reset --soft [sha]
: déplace le head
, mais sans mettre à jour les fichiers et l'indexgit reset --soft HEAD^
: annule le dernier commit, mais laisse l'index intactgit reset --hard
: nettoie le répertoire de travail, utile après que des changements ont étés poussés depuis un autre dépôtgit reset --hard [sha]
: déplace le head
, nettoie l'index, et nettoie le répertoire de travailgit reset --hard HEAD^
: annule le dernier commit, nettoie l'index et abandonne les modifications des fichiersgit rm [fichier]
-r
: récursif (pour un répertoire)git stash
: met de côté les changements en cours (y compris ceux dans stage)git stash push [-m message] files
: met de côté les changements sur certains fichiersgit stash list
: liste les changements mis de côtégit stash show stash@{[x]}
: montre le résumé du changement (comme git diff --stat
)git stash show -p stash@{[x]}
: montre le diff du changementgit stash apply stash@{[x]}
: ré-applique le changementgit stash drop stash@{[x]}
: supprime le changementgit stash pop stash@{[x]}
: applique et supprime le changementgit stash clear
: supprime tous les changementsPour les commandes prenant un paramètre d'index, s'il est omis, le plus récent changement est utilisé.
staged
: fichiers prêts à être commitésunstaged
: fichiers modifiés mais pas dans l'indexuntracked
: fichiers encore jamais commitésdeleted
: fichiers effacésgit submodule update --init --recursive
: met à jour les sous-modules, récursivement, en les initialisant si nécessairegit submodule init
: initialise les sous-modulesgit tag -a [étiquette]
> git checkout -f
> git branch [nom de la nouvelle branche]
> git reset --hard [sha du dernier commit à garder dans la branche actuelle]
> git checkout [nom de la nouvelle branche]
Source: SO: Move the most recent commit(s) to a new branch with Git.
> git rebase -i --autosquash [dernier commit à conserver]
> git reset --soft [sha du commit précédent ceux à regrouper]
> git commit -m "commentaire"
> git rebase -i HEAD~[nombre de commits à fusionner]
# premier écran : basculer de “pick” à “squash” pour les commits à fusionner
# deuxième écran : message de commit
cf http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
> git rebase -i HEAD~[nombre de commits à ré-ordonner]
# déplacer les lignes de commit dans l'ordre voulu
> git rebase -i HEAD~[position du commit à corriger]
# changer pick en reword
Garder l'authentification en cache une heure:
> git config --global credential.helper 'cache --timeout 3600'
> git remote add -f [bernard] https://[moi]@[serveur]/[projet].git
(> git remote update)
> git diff master remotes/[bernard]/master
> git fetch [bernard] master:[bernard]
> git checkout [bernard]
> git checkout master
> git remote rm [bernard]
> git branch -D [bernard]
git tag -l | xargs git tag -d && git fetch -t
git push --delete origin […]
~/.gitconfig :
[user]
email = …
name = …
[core]
autocrlf = input
safecrlf = false
[pull]
rebase = false
[alias]
lg = "log --all --decorate --oneline --graph"
La dernière mise à jour de cette page date de septembre 2022.
Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.