2012-02-02 13 views
196

Me encontré modificando mis compromisos con bastante frecuencia. No hago tanto stash porque tiendo a olvidar que lo hice, especialmente cuando quiero guardar lo que hacía antes de irme o antes de un fin de semana, así que hago un "borrador" de compromiso. Lo único es que, cuando modifico la confirmación, todavía se establece en la fecha original del autor. ¿Hay alguna manera (simple) de actualizarlo cuando se modifica?Actualizar git confirmar fecha de autor al modificar

+0

Esto es especialmente útil cuando se realiza rebase interactivo y esperas GitHub para mostrar las confirmaciones en la solicitud de extracción con el fin árbol en vez de orden de fecha. – Sukima

Respuesta

245

Puede cambiar la fecha del autor con el parámetro --date al git commit. Por lo tanto, si desea modificar la última confirmación, y actualizar su fecha de autor para la fecha y hora actuales, que puede hacer:

git commit --amend --date="$(date -R)" 

(El parámetro -R a date dice que a la salida de la fecha en formato RFC 2822 . esta es una de las date formats understood by git commit)

+22

FTR, parece que en OS X, 'date' no sabe' -R'. Usar 'date' without options hizo el trabajo de todos modos – ksol

+5

Tenga en cuenta que si quiere esto como un alias, necesita agregar un'! 'Y escapar de las comillas, p. 'can =! git commit --amend --date = \" $ (date -R) \ "' –

+9

'date -R' no funciona en OSX, use' date +% s' en su lugar – stash

201

Otra manera de hacer esto es

git commit --amend --reset-author 

esto no cambia el autor se comprometen, así como la fecha -. pero si era originalmente su unpushed comprometen a continuación, 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 no se modifiquen. De esta forma, no se te pedirá que edites el mensaje para cada confirmación.

10

Me gusta la respuesta de Mark y la utilicé varias veces, pero ahora estoy en OS X y date -R no es compatible. Pero todo es mucho más fácil que la respuesta original nos hizo pensar, simplemente use cadena vacía!

git commit --date= --amend 
+3

Eso no funciona. Git cancela con el error 'fatal: formato de fecha no válido:' –

+0

Funcionó para mí (en Windows, Git 1.9.4) – Csq

+0

Obtengo el mismo error que @NikosC (en Linux, Git 2.1) – Tshepang

113
git commit --amend --date=now 

(Git versión 2.7.0)

1

he creado este paquete de NPM si alguien todavía en busca de una forma sencilla de cambiar las fechas de múltiples confirmaciones.

https://github.com/bitriddler/git-change-date

Uso:

npm install -g git-change-date 
cd [your-directory] 
git-change-date 
Cuestiones relacionadas