Quelques commandes utiles avec git

Voici quelques commandes qui me sont très utiles et que j'utilise souvent.

Créer un commit basé sur le nom de la branche puis le modifier

git commit --message $(git rev-parse --abbrev-ref HEAD | tr "-" " ") ; git commit --amend

Mettre à jour la branche locale à partir du dépôt amont

git pull upstream $(git rev-parse --abbrev-ref HEAD)

Créer un commit pour corriger un commit précédent

git commit --fixup HEAD~1


HEAD~1 est une référence à l'avant-dernier commit.

On peut alors rebaser la branche et activer la fusion automatique via l'option --autosquash :

git rebase --interactive --autosquash \
origin/develop

Définir la branche amont

Quand git n'arrive pas à faire un pull:

git pull
Pas d'information de suivi distant pour la branche actuelle.
Veuillez spécifier une branche avec laquelle fusionner.
Référez-vous à git-pull(1) pour de plus amples détails.

    git pull <distant> <branche>

Si la branche amont et locale ont le même nom, on peut les lier avec la commande suivante :

git branch --set-upstream-to=origin/$(git rev-parse --abbrev-ref HEAD)

Et git pull sera fonctionnel.

Supprimer les branches locales qui ont déjà été fusionnées

git branch -a \
| grep -v "remotes\|develop\|master\|main" \
| tr -d " " | xargs git branch -d


Cette commande supprime les branches sauf les branches principales exclues avec grep -v

Optimiser le stockage des fichiers git

find ~/works/ -name '*.git' \
-execdir sh -c 'echo && cd {} \
&& pwd && git gc && git prune' \;


find trouve tous les répertoires dans le dossier ~/works/ qui contiennent eux-mêmes un dossier .git et lance les opérations de nettoyage.

Récupérer le nom de la branche (sans les tirets) dans le presse-papier

git rev-parse --abbrev-ref HEAD | tr "-" " " \
| xsel --clipboard