2013-05-03 12 views
5

Mój kolega przepchnął swój commit do naszego repozytorium github. Niestety, ma datę systemową około 20 dni przed czasem rzeczywistym. Więc wszystkie (4) jego zatwierdzenia mają złą datę. Chciałbym zmienić daty w tych zatwierdzeniach, ale niektóre dodatkowe prace zostały już wykonane w oparciu o te błędnie datowane zatwierdzenia.Jak zmienić datę zatwierdzenia na wyższym poziomie w Git?

Znalazłem to pytanie: How can one change the timestamp of an old commit in Git?, na które odpowiedzi pokazują, w jaki sposób mogę to zrobić, ale nie sądzę, że jest to bezpieczne, ponieważ zatwierdzenia SHA zostaną zmienione z powodu zmiany daty i nie jestem pewien, co stanie się z zmiany oparte na oryginalnych (błędnie datowanych) zatwierdzeniach.

Czy można bezpiecznie zmieniać daty i zmieniać zatwierdzone zmiany? Co dokładnie stanie się w repozytorium github? Zakładam, że zostaną stworzone zupełnie nowe commtis, a stare nadal będą tam i tak ...

Z drugiej strony, jeśli zostawiam nieaktualne oświadczenia, jakie są teraz, jakie jest niebezpieczeństwo? Jak dotąd zauważyłem, że wykres sieciowy na githubie nie działa ...

+5

Wartość mieszania SHA jest obliczana dla całego zatwierdzenia, łącznie z jego datą. Nie można zmienić daty zatwierdzenia bez zmiany skrótu SHA. – Andomar

+0

Wiem o tym, ale dzięki za potwierdzenie. –

Odpowiedz

1

Możesz zmienić zatwierdzenia, które spowodują nową historię. Możesz spowodować, że GitHub zaakceptuje zmiany poprzez git push --force, które zmienią historię. Jednak zrobienie tego spowoduje kłopoty dla innych deweloperów, którzy wycofają się z repozytorium (prawdopodobnie będą musieli je ponownie zrekrutować).

Historia opiera się na SHA, a nie w momencie ich wystąpienia. Jeśli spojrzysz na daty po wykonaniu rebase zobaczysz zmiany, które wystąpiły "po" kolejnych. Jeśli chodzi o problemy z repozytorium lub kodem, nie ma niebezpieczeństwa.

Powiązane problemy