Skip to content

Instantly share code, notes, and snippets.

@lpenaud
Last active November 10, 2025 11:05
Show Gist options
  • Select an option

  • Save lpenaud/ae4fc89e9ecc2ba509a9aa7f60cdca12 to your computer and use it in GitHub Desktop.

Select an option

Save lpenaud/ae4fc89e9ecc2ba509a9aa7f60cdca12 to your computer and use it in GitHub Desktop.
Memo git

Signature GPG

Git peut utiliser les clés GPG pour signer vos commits. En utilisant une signature GPG vous confirmez votre identité plus fortement.

Installation

Pour générer la clé vous aurez besoins d’une implémentation de OpenPGP. Comme GnuPG disponible sur les sytèmes Unix.

apt install gnupg

Génération

TODO: Rechercher un standard de sécurité public.

gpg --full-generate-key

Rentrez votre nom et votre adresse de courriel rattachés au dépôt distant.

Identifiant unique

Une fois la clé générée, récupérérez l’identifiant unique de la clé.

gpg --list-secret-keys --keyid-format LONG EMAIL

Cette commande permet d’obtenir l’identifiant public et privé de la GPG. Les premières lignes de sortie devraient être sous la forme ci-dessous :

sec TYPE/PUBLIC_ID DATE [SC]
    PRIVATE_ID

Configuration de Git

Ajout de la clé

Le champ user.signingKey renseigné par l’identifiant unique de la clé privée permet d’indiquer à Git quelle clé il doit utiliser pour signer les commits.

git config --global user.signingKey PRIVATE_ID

Utiliser la clé pour la validation

Pour rendre obligatoire la signature des commits on peut mettre le champ commit.gpgSign à vrai.

git config --global commit.gpgSign true

Configuration Gitlab

Il faut inscrire la clé publique de la signature GPG pour que l’instance de Gitlab puisse reconnaitre la signature.

Pour cela on va copier la clé publique :

gpg --armor --export PUBLIC_ID | xclip -selection clipboard

Pour inscrire votre clé rendez-vous dans la partie configuration de clé GPG de votre profil, puis collez la clé publique, ensuite validez le formulaire. Vous devriez recevoir une notification de confirmation par courriel.

Aide-Mémoire git

Créer par moi au fur à mesure de mes pérégrinations dans le monde virtuel.

Aide

help SUBJECT

Initialisation

init

Journalisation

log [--graph] [--oneline] [--pretty=FORMAT]
  [--decorate=[short|full|auto|no]]
  [--abbrev-commit]
  [--all]
  [--branches MOTIF]
  [--tags MOTIF]
reflog

Paramétrage

config [--global] --edit
config [--global] CLÉ [VALEUR]

Index

add [...FICHIERS]
restore [--staged]

Soumission

commit [-m MESSAGE] [--amend] [...FICHERS SUIVIS]
revert [--no-edit] [(-n | --no-commit)] ...COMMITS
revert (--abort | --continue | --skip)
show VERSION:FICHIER

Dépôt

clone [--recursive] LIEN_DÊPOT [RÉPERTOIRE]
fetch [--prune] [DÉPÔT]
pull [--set-upstream] [--rebase] [DÉPÔT] [BRANCHE]
push [--set-upstream] [(-f | --force | --force-with-lease)] [-o ci.skip] [DÉPÔT] [[:]BRANCHE]
remote show [DÉPÔT]
remote add DÉPÔT LIEN
remote get-url DÉPÔT
remote update DÉPÔT NOUVEAU_DÉPÔT
remote remove DÉPÔT

Remisage

stash (push [-m MESSAGE])
stash pop
stash drop
diff [...(FICHIERS | COMMITS)] [> [CORRECTIF]]
apply [CORRECTIF]
clean [(--interative | -i)] [...FICHIERS]

Branche

checkout [-b] BRANCHE
branch (-D | --delete --force) BRANCHES
branch (-m | --move) SRC DEST
branch (-c | --copy) SRC DEST
branch -vv
branch --list

Étiquetage

tag NOM [COMMIT]
tag (-l | --list) [GLOB]
tag (-d | --delete) ÉTIQUETTE

Rembobinage

rebase [-i | --interactive] BRANCHE
rebase (--abort | --continue | --skip)
merge-base [DÉPÔT/]BRANCHE [DÉPÔT/]MÈRE

Fusion

merge BRANCHE
merge (--abort | --continue | --skip)

Picorage

cherry-pick ...COMMITS
cherry-pick (--abort | --continue | --skip)

Astuces

Toujours faire des validations avec peu de changements dans le but de simplifier les fusions ou les rembobinages.

Butler's Log

Article datant de 2024 de Scott Chacon sur le blog de son entreprise gitbutler révélant les secrets de polichinelles des vétérans de Git.

Il a aussi sa page personnelle : Scott's Writings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment