Me encontré modificando mis compromisos con bastante frecuencia. No lo hago stash
mucho porque tiendo a olvidar que lo hice, especialmente cuando quiero guardar lo que hice antes de irme o antes de un fin de semana, así que hago un compromiso de "borrador". Lo único es que, cuando modifico el commit, todavía está configurado en la fecha original del autor. ¿Hay alguna forma (simple) de actualizarlo al modificar?
305
Respuestas:
Puede cambiar la fecha del autor con el
--date
parámetro agit commit
. Por lo tanto, si desea modificar la última confirmación y actualizar su fecha de autor a la fecha y hora actuales, puede hacer lo siguiente:(El
-R
parámetro todate
le dice que envíe la fecha en formato RFC 2822. Este es uno de los formatos de fecha entendidos porgit commit
).fuente
date
no lo sabe-R
. Usardate
sin opciones hizo el trabajo de todos modos!
ay escapar de las comillas, por ejemplocan = !git commit --amend --date=\"$(date -R)\"
date -R
no funciona en OSX, usedate +%s
en su lugargit commit --amend --date="$(date +%s)"
git commit --amend --date=now
Funciona también. No es necesario invocar una subshell con el comando date (1) . Puede verlo en el código fuente de git (1) en date.c 'now' es un valor especial que se convierte utilizando la función date_now (). Lo mismo para 'mediodía', 'ayer', 'medianoche', 'té' y otros que figuran en la matriz de estructura especial [].Otra forma de hacer esto es
Esto cambia el autor de la confirmación, así como la fecha, pero si originalmente fue su confirmación no apresurada, entonces eso es un no-op.
También puede agregar
--no-edit
si desea actualizar la fecha en varias confirmaciones pero desea que los mensajes de confirmación permanezcan intactos. De esta manera, no se le pedirá que edite el mensaje para cada confirmación.fuente
git commit --amend
cambios se comprometen en lugar de solo ajustes o algo así, es decir, da como resultado un historial diferente de cambios en el contenido del repositorio donde cualquier sistema de control de versiones es muy estricto. Y como tal, intuitivamente espero que tanto el autor como la fecha coincidan con los datos de confirmación reales. Especialmente la autoría es importante, ni siquiera la fecha. Vota este comentario si quieres vencer a los desarrolladores de git responsables de dicho incumplimiento. :)A partir de Git v2.1.4 (probado en Debian 8 (Jessie))
fuente
--no-edit
.Me gusta la respuesta de Mark y la usé varias veces, pero ahora estoy en OS X y
date -R
no es compatible. Pero todo es mucho más fácil de lo que la respuesta original nos hizo pensar, ¡solo use una cadena vacía !fuente
fatal: invalid date format:
--date="$(date)"
en OS X. La opción-R
es GNUism.Creé este paquete npm si alguien todavía está buscando una manera simple de cambiar las fechas de múltiples confirmaciones.
https://github.com/bitriddler/git-change-date
Uso:
fuente
npm
paquete? No, aprenda a usar elgit
comando tal cual.