tab - ¿Git firman compromisos previos?
git tags best practices (5)
Me preguntaba cómo firmar ( -s
) las confirmaciones anteriores que hice en el pasado en git?
Para firmar la confirmación anterior, use la opción de modificación:
git commit --amend --signoff
Para mí, solo un signo de admiración, en realidad no verifiqué mis commits en github.
La solución que se trabajó para mí es volver atrás, y luego firmar cada confirmación con -S
git commit --amend -S
Además, si comprueba si su confirmación está realmente firmada y su correo electrónico / nombre simplemente no está adjunto, utilice este comando
git show HEAD --show-signature
Sugerencia adicional: si ya está modificando sus confirmaciones, es posible que desee incluir su nombre real en ellas (consulte el uso de git log
). Puede estar usando su nombre de administrador github, que no es necesario. Solo se necesita un correo electrónico correcto y en el campo del nombre de usuario debe usar su nombre completo y github lo rastreará correctamente con su nombre de administrador github. Para corregir su nombre de usuario y firmar el último compromiso, utilice:
git commit --amend --author="FULL NAME <email>" -S
y también establezca el nombre completo del nombre de usuario en el futuro mediante
git config --global user.name "FULL NAME"
Prueba este para rehacer commits antiguos con un -S
:
git filter-branch -f --commit-filter ''git commit-tree -S "$@"'' HEAD
Después de eso, tienes que git push -f
. Pero ten cuidado, los identificadores de commit cambiarán y otras personas perderán sincronización.
Teniendo en cuenta las aprobaciones modificar el mensaje de compromiso, utiliza git filter-branch
para lograr eso.
git filter-branch --msg-filter /
"cat - && echo && echo ''Signed-off-by: Dan McGee <[email protected]>''" /
HEAD
(ejemplo de " git filter-branch
magic ")
O, siguiendo la suggestion Curt J. Sampson , usando git interpret-trailers
:
git config trailer.sign.key "Signed-off-by"
git filter-branch --msg-filter /
"cat - && echo && git interpret-trailers --trailer ''sign: ''Signed-off-by: Dan McGee <[email protected]>''" /
HEAD
advertencia : esto cambiará el SHA1 de sus confirmaciones existentes, y es posible que tenga que forzar el resultado, lo que puede ser problemático si sus compromisos ya han sido compartidos por otros.
Tuve un problema similar. Aquí, gracias a Robin Johnson de Gentoo Linux, es un truco para agregar la firma a todos mis commits anteriores que no se han apilado:
$ git pull && git rebase --gpg-sign --force-rebase origin/master && git push --signed
Already up-to-date.
Current branch master is up to date, rebase forced.
First, rewinding head to replay your work on top of it...
Applying: sci-biology/KING: new package
Applying: dev-lang/yaggo: version bump, fix install procedure
Applying: sci-libs/htslib: version bump
Applying: sci-biology/bcftools: version bump
Applying: sci-biology/samtools: version bump
Applying: sci-biology/libBigWig: new release with io.h renamed to bigWigIO.h
Applying: sci-biology/MaSuRCA: add more URLs to HOMEPAGE
Applying: sci-biology/SPAdes: update comments on bundled dev-libs/boost
Applying: sci-biology/khmer: added a comment how to proceed with src_compile()
Applying: sci-biology/picard: version bump
Applying: sci-biology/ruffus: pint EGIT_REPO_URI to the archive URL of code.google.com
Applying: sci-biology/vcftools: the 0.1.15_pre release was just renamed to 0.1.15 by upstream
Applying: sci-biology/nanopolish: new package
Applying: sci-biology/libBigWig: version bump
Counting objects: 75, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (75/75), done.
Writing objects: 100% (75/75), 14.51 KiB | 0 bytes/s, done.
Total 75 (delta 55), reused 0 (delta 0)
remote: To github.com:gentoo/sci.git
remote: 29c5e3f5d..b37457700 master -> master
To git+ssh://git.gentoo.org/proj/sci.git
29c5e3f5d..b37457700 master -> master
$