Git ahora tiene la capacidad de firmar confirmaciones git commit -S
, lo cual es genial, pero a veces olvido la marca y commit
, a veces, me envío por correo los parches que solicito am
, y ese comando no tiene una marca para firmar.
¿Hay alguna manera de agregar una firma a una confirmación ya registrada?
git config commit.gpgsign true
.Respuestas:
Agregue la siguiente línea después de cada confirmación que desea firmar
exec git commit --amend --no-edit -S
Esto ejecutará este comando después de elegir cada confirmación.
ACTUALIZAR:
La forma más fácil de hacer esto es:
Esto reajusta todo hasta el desarrollo (o cualquier hash) y no tiene que copiar y pegar después de cada confirmación.
fuente
resign = "!re() { git rebase --exec 'git commit --amend --no-edit -n -S' -i $1; }; re"
se conviertegit resign HASH
git commit --amend --no-edit -n -S
.git push --force
?Firmar una confirmación cambia su contenido, por lo que las confirmaciones más recientes, dependiendo de ello, cambiarán su hash.
Si solo quieres firmar la confirmación más reciente,
git commit -S --amend
funcionará.fuente
Yo uso
git rebase -i --root
(ver Reescribir el historial ) y cambiarpick
aedit
.Luego uso
git commit -S --amend --no-edit && git rebase --continue
(en Windows) para cada commit.fuente
También me topé con el mismo problema y aquí está mi solución:
esto firmará todas mis confirmaciones desde la primera confirmación inicial y también omitirá el enlace de confirmación que configuré usando husky . No es necesario cambiar
pick
aedit
.fuente
Si desea filtrar solo confirmaciones específicas y firmar solo ellas, puede usar
filter-branch
:Esto es útil si, por alguna razón, desea firmar solo sus propios commits.
fuente
Si necesita que GPG firme todas las confirmaciones DESDE una confirmación particular en la rama actual, puede usar lo siguiente en su lugar:
git filter-branch --commit-filter 'git commit-tree -S "$@";' <COMMIT>..HEAD
¿Dónde
<COMMIT>
está el id de confirmación (por ejemploabc123e5
)Esto tiene el beneficio adicional de que no perturba los metadatos de confirmación (incluida la fecha de confirmación).
Si también desea dejar de que se le solicite su frase de contraseña GPG en cada confirmación, vea también esta respuesta: https://askubuntu.com/a/805550
NOTA: Cambiar de
gpg
agpg2
para firmar GIT requerirá que vuelva a importar su clave privada en GPG 2.fuente