Outils pour utilisateurs

Outils du site


gestion_configuration:git:commits

Gestion des commits

Cette page explique certaines opérations courantes sur les commits (git commit, git log).

Commiter les changements

Avec message:

$ git commit -m "Correction de bogue."

En ajoutant les changements :

$ git commit -a -m "Correction de bogue."

Spécifier l'auteur:

$ git commit --author="User Name <username@domain.com>" -m "The commit message"

Changer le message d'un commit

Le commit ne doit pas avoir été poussé.

$ git commit --amend -m "Nouveau message"

Voir les commentaires à ce sujet sur SO

Pour changer le message d'un X message précédent non poussé :

$ git rebase -i HEAD~X

Changer les messages dans l'éditeur. Mettre edit au lieu de pick.

$ git commit --amend
$ git rebase --continue

Source

Annuler un commit

Annuler le dernier commit et garder les changements:

$ git reset --soft HEAD^

Annuler le dernier commit et ne pas garder les changements:

$ git reset --hard HEAD^

Pour annuler les deux derniers commits:

$ git reset --hard HEAD^^

Cherry-Pick de commits

Le cherry-pick permet de prendre un commit d'une autre branche et de l'appliquer sur la branche actuelle. Ceci fonctionne avec le SHA-1 du commit. On peut utiliser les premiers caractères du SHA1.

Pour appliquer un commit d'une autre branche à la branche courante:

$ git cherry-pick <commit-hash>
$ git cherry-pick 91e263a

Ceci aura pour effet d'avoir un commit supplémentaire sur la page actuelle, avec le même message et le même auteur que le commit original.

Liste des commits d'une autre branche

On utilise la commande log pour voir les commits d'une autre branche et faire le cherry-pick.

Liste des commits sur une autre branche avec le hash:

$ git log branche-courante..autre-branche --pretty=oneline
$ git log branche-courante..autre-branche --pretty="%h - %an, %ar : %s"

On peut utiliser --no-pager pour avoir la sortie des commits directement dans le shell (stdout).

Chercher les commits par message

Rechercher test dans les messages de tous les commits:

$ git --no-pager log --all --pretty="%h - %an, %ar : %s" --grep='test'

Signer les commits (mac)

Télécharger et installer GnuPG à partir de ce site (GnuPG for OS X - Installer for GnuPG).

Une fois installé, ouvrir un terminal:

$ gpg2 --default-new-key-algo rsa4096 --gen-key

Lister les pairs de clés:

$ gpg2 --list-secret-keys --keyid-format LONG
/Users/username/.gnupg/pubring.kbx
----------------------------------
sec   rsa4096/80D57A25EBAE32A0 2019-09-10 [SC] [expires: 2022-09-09]
      EB3112493D4B76016338A78980F57E25EBAE23A0
uid                 [ultimate] Stéphane Gariépy <email@example.com>
ssb   rsa4096/0E45DE2D3A52DF89 2019-09-10 [E] [expires: 2022-09-09]

Dans l'exemple précédent, la clé voulue a le ID 80D57A25EBAE32A0.

Exporter la clé publique en faisant la commande suivante en ayant le bon identifiant de clé :

$ gpg2 --armor --export 80D57A25EBAE32A0

Ajouter la clé publique dans la section GPG Keys de GitLab/GitHub.

Avec le même identifiant de clé, ajouter dans la config de Git:

$ git config --global user.signingkey 80D57A25EBAE32A0

Supprimer des fichiers commités

$ echo 'node_modules' >> .gitignore
$ git rm -r --cached node_modules
$ git commit -am 'ignore node_modules'

⇒ Source: Adding a new GPG key to your GitHub account

Outils

gestion_configuration/git/commits.txt · Dernière modification : 2022/02/02 00:42 de 127.0.0.1