Dość często poprawiałem swoje zobowiązania. Nie stash
bardzo, bo często zapominam, że to zrobiłem, zwłaszcza gdy chcę zapisać to, co zrobiłem przed wyjazdem lub przed weekendem, więc robię zatwierdzenie „szkicowe”. Jedyną rzeczą jest to, że kiedy zmieniam zatwierdzenie, wciąż jest ustawiony na pierwotną datę autora. Czy istnieje (prosty) sposób na zaktualizowanie go podczas zmiany?
305
Odpowiedzi:
Możesz zmienić datę autora za pomocą
--date
parametru nagit commit
. Jeśli więc chcesz zmienić ostatnie zatwierdzenie i zaktualizować datę jego autora do bieżącej daty i godziny, możesz:(
-R
Parametrdate
mówiący, aby wyświetlał datę w formacie RFC 2822. Jest to jeden z formatów daty rozumianych przezgit commit
.)źródło
date
nie wie-R
. Używaniedate
bez opcji i tak!
i uniknąć znaków cudzysłowu, np.can = !git commit --amend --date=\"$(date -R)\"
date -R
nie działa na OSX, użyjdate +%s
zamiast tegogit commit --amend --date="$(date +%s)"
git commit --amend --date=now
działa również. Nie trzeba wywoływać podpowłoki za pomocą polecenia date (1) . Możesz to zobaczyć w kodzie źródłowym git (1) w date.c „teraz” jest specjalną wartością, która jest konwertowana za pomocą funkcji date_now (). To samo dotyczy „południa”, „wczoraj”, „północy”, „herbaty” i innych wymienionych w specjalnej tablicy struktur [].Innym sposobem na to jest
To zmienia autora zatwierdzenia, a także datę - ale jeśli pierwotnie był to twój niedomówiony zatwierdzenie, to nie ma możliwości.
Możesz także dodać,
--no-edit
jeśli chcesz zaktualizować datę wielu zatwierdzeń, ale chcesz, aby komunikaty zatwierdzeń pozostały nietknięte. W ten sposób nie będziesz monitowany o edycję wiadomości dla każdego zatwierdzenia.źródło
git commit --amend
zmiany dokonują raczej zmian niż tylko poprawek lub czegoś podobnego, tzn. Skutkują odmienną historią zmian zawartości repozytorium, w których jakikolwiek system kontroli wersji jest bardzo ścisły. I jako taki intuicyjnie oczekuję, że zarówno autor, jak i data będą pasować do rzeczywistych danych zatwierdzenia. Szczególnie ważne jest autorstwo, nawet data. Głosuj ten komentarz, jeśli chcesz pokonać programistów git odpowiedzialnych za takie domyślne. :)Począwszy od Git v2.1.4 (testowane na Debian 8 (Jessie))
źródło
--no-edit
.Podoba mi się odpowiedź Marka i korzystam z niej kilka razy, ale teraz jestem na OS X i
date -R
nie jest obsługiwany. Ale wszystko jest o wiele łatwiejsze niż oryginalna odpowiedź skłoniła nas do myślenia, wystarczy użyć pustego łańcucha !źródło
fatal: invalid date format:
--date="$(date)"
w OS X.-R
Opcją jest GNUism.Stworzyłem ten pakiet npm, jeśli ktoś nadal szuka prostego sposobu zmiany dat wielu zatwierdzeń.
https://github.com/bitriddler/git-change-date
Stosowanie:
źródło
npm
paczki? Nie, dowiedz się, jak używaćgit
polecenia w stanie, w jakim się znajduje.