Widzę to w tym repozytorium GitHub :
Co to znaczy? Jak coś może być „autorstwa 7 dni temu”, a jednak „popełnione 14 godzin temu”?
Widzę to w tym repozytorium GitHub :
Co to znaczy? Jak coś może być „autorstwa 7 dni temu”, a jednak „popełnione 14 godzin temu”?
commit --date=
. Schwern wyjaśnia to bardzo ładnie.Odpowiedzi:
Git ma osobną koncepcję autora (osoby, która napisała kod) i osoby odpowiedzialnej (osoby, która przekazała go do repozytorium). Podobnie mogą być różne daty dla obu. Zazwyczaj są takie same.
Chcielibyście, aby różniły się przede wszystkim, jeśli osoba pisząca kod lub przesyłająca łatkę nie ma dostępu wypychanego do repozytorium, jak w projektach wykorzystujących listy mailingowe do przesyłania poprawek. W takim przypadku osoba z dostępem push zastosuje łatkę i uruchomi
git commit
się za pomocą przełączników--author
i--date
lub używając zmiennych środowiskowych GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL i GIT_AUTHOR_DATE (udokumentowane w drzewie git-commit-tree .Innym przypadkiem jest użycie
git cherry-pick
lub git rebase. Osoba odpowiedzialna jest osobą wykonującą wybieranie wiśniowe, a autor jest autorem oryginalnego zatwierdzenia. Git zajmie się ustawieniem dla Ciebie tożsamości i daty autora.Możesz zobaczyć te informacje w repozytorium za pomocą
git log --pretty=fuller
.źródło
git rebase
powoduje również aktualizację daty zatwierdzenia, podczas gdy data autora pozostaje taka sama.Wygląda to na mieszankę między tym, jak Git działa z datami, a tym, w jaki sposób odniesiono go do zamykających słów kluczowych GitHub .
Git rozdziela daty zatwierdzenia od autora. W Pro Git nieco się różnią :
Tak więc, chociaż sam kod został zatwierdzony / napisany „7 dni temu” (lokalnie), nie został „zastosowany” ani załatany do kodu do „14 godzin temu”, ponieważ nie był widoczny na pilocie, dopóki nie wspomniano o zamknięciu wiadomość.
źródło