Me encontré modificando mis compromisos con bastante frecuencia. No lo hago stashmucho 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
--datepará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
-Rparámetro todatele dice que envíe la fecha en formato RFC 2822. Este es uno de los formatos de fecha entendidos porgit commit).fuente
dateno lo sabe-R. Usardatesin opciones hizo el trabajo de todos modos!ay escapar de las comillas, por ejemplocan = !git commit --amend --date=\"$(date -R)\"date -Rno funciona en OSX, usedate +%sen su lugargit commit --amend --date="$(date +%s)"git commit --amend --date=nowFunciona 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-editsi 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 --amendcambios 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 -Rno 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-Res 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
npmpaquete? No, aprenda a usar elgitcomando tal cual.