J'ai suivi quelques articles sur les attributs pretty sur les notes de version de Git 2.10. En parcourant cela, j'ai mis à jour git vers la version 2.10.0 et j'ai apporté des modifications au .gitconfig
global, ce qui a donné les résultats suivants -
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true
[user]
name = xyz
email = abc.def@gmail.com
signingkey = AAAAAAA
[core]
excludesfile = /Users/xyz/.gitignore_global
editor = 'subl' --wait
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
path =
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true
[alias]
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
[color "diff"]
old = red strike
new = green italic
Mais maintenant, lorsque j'essaie de signer mes commits en utilisant
git commit -a -S -m "message"
Je vois l'erreur suivante -
Vous devez entrer une passphrase pour déverrouiller la clé secrète de
l'utilisateur : "XYZ (Signé numériquement) "
Clé RSA 2048 bits, ID AAAAAAAA, créée le 01-07-2016
erreur : gpg n'a pas pu signer les données fatale : impossible d'écrire l'objet de commit
Remarque - Je peux toujours valider les modifications en utilisant git commit -a -m "message"
Y a-t-il un moyen de surmonter cela ? Ou des modifications sont-elles nécessaires dans les configurations gpg
pour s'adapter à la mise à jour de git ?
Mise à jour 1
Recherchant également une utilité supplémentaire, suivant Existe-t-il un moyen de "signer automatiquement" les commits dans Git avec une clé GPG ?. J'ai déjà configuré la clé en utilisant
git config --global user.signingkey ED5CDE14(avec ma clé)
git config --global commit.gpgsign true
et évidemment, je reçois toujours la même erreur de toute façon.
4 votes
Je rencontre un problème similaire. J'ai désinstallé Git 2.8 (git-scm) sur Windows. Et j'ai installé la version 2.10. Maintenant j'obtiens
gpg a échoué à signer les données
chaque fois que j'utilise-S
. Avec la version 2.8, je pouvais signer un commit sans problème. Je ne sais pas ce qui s'est passé.10 votes
Ajouter
user.signingkey
a résolu mon problème, étrangement.0 votes
Doublons possibles : stackoverflow.com/questions/41052538/… et stackoverflow.com/questions/41502146/…
1 votes
Une ironie, j'avais changé ma machine pour tout recommencer et j'ai fini par chercher ma propre question et aucune des solutions suggérées ne me semble assez claire pour simplement commencer.
40 votes
Essayer
gpgconf --kill gpg-agent
comme discuté ici1 votes
Pour moi, la solution a été: git config
user.name
était différent du nom utilisé lors de la création de la clé PGP10 votes
Assurez-vous que
git config --get-all user.name
etgit config --get-all user.email
sont identiques à la clé utilisée pour la signature, qui peut être vérifiée viagpg -K --keyid-format SHORT
0 votes
J'ai dû m'assurer que GPG Suite était téléchargé pour que
git config --global user.signingkey
fonctionne.0 votes
Dans mon cas, j'utilise GPG Keychain sur macOS. Je l'ai ouvert et ma clé principale avait expiré il y a quelques jours. Il m'a demandé de la prolonger. Je l'ai fait et j'ai réessayé l'engagement et cela a fonctionné parfaitement.
0 votes
Dans mon cas, j'utilise GPG Keychain sur macOS, et
~/.gnupg
est un lien symbolique vers mon Google Drive en streaming (/Volumes/Google Drive/...
). Le passage de Google Drive en mode miroir a corrigé le problème. L'indice étaitgpg-agent --daemon
error binding socket to '/Users/cunnie/.gnupg/S.gpg-agent': Operation not supported
0 votes
Quel bordel !