2012-02-02 22 views
196

Mi sono trovato a modificare i miei commit abbastanza spesso. Io non lo faccio stash tanto perché tendo a dimenticare che l'ho fatto, soprattutto quando voglio salvare ciò che ho fatto prima di partire o prima di un fine settimana, quindi eseguo un commit "bozza". L'unica cosa è che, quando correggo il commit, è ancora impostato sulla data dell'autore originale. C'è un modo (semplice) per aggiornarlo quando si modifica?Aggiornamento git commit data dell'autore quando si modifica

+0

Ciò è particolarmente utile quando si esegue rebase interattivo e si aspettano GitHub per visualizzare i commit nel Pull richiesta affinché albero invece di ordine di data. – Sukima

risposta

245

È possibile modificare la data di autore con il parametro --date su git commit. Quindi, se si vuole modificare l'ultimo commit, e aggiornare la data dell'autore alla data e ora correnti, si può fare:

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

(Il parametro -R per date dice di uscita la data in formato RFC 2822 . questo è uno dei date formats understood by git commit)

+22

FTR, è simile a OS X, 'date' non conosce' -R'. L'uso di 'date' senza opzioni ha comunque svolto il lavoro – ksol

+5

Notare che se si desidera che questo sia un alias, è necessario aggiungere un'! 'E sfuggire alle virgolette, ad es. 'can =! git commit --amend --date = \" $ (date -R) \ "' –

+9

'data -R' non funziona su OSX, usa' date +% s' invece – stash

201

un altro modo per fare questo è

git commit --amend --reset-author 

questo non cambia l'autore commit così come la data -. ma se era in origine la vostra unpushed commettere allora che è un no -operazione.

È inoltre possibile aggiungere --no-edit se si desidera aggiornare la data su più commit ma si desidera che i messaggi di commit rimangano inalterati. In questo modo non ti verrà chiesto di modificare il messaggio per ogni commit.

10

Mi piace la risposta di Mark e l'ho utilizzata più volte, ma ora sono su OS X e date -R non è supportata. Ma tutto è molto più semplice della risposta originale che ci ha fatto pensare, basta usare la stringa vuota !

git commit --date= --amend 
+3

Questo non funziona. Git abortisce con l'errore 'fatal: formato data non valido:' –

+0

Ha funzionato per me (su Windows, Git 1.9.4) – Csq

+0

Ho lo stesso errore di @NikosC (su Linux, Git 2.1) – Tshepang

113
git commit --amend --date=now 

(Git versione 2.7.0)

1

Ho creato questo pacchetto npm se qualcuno ancora alla ricerca di un modo semplice per cambiare le date di più commit.

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

Usage:

npm install -g git-change-date 
cd [your-directory] 
git-change-date 
Problemi correlati