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.
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
.
commit 21550561941b078ea1862b882ec89f26696ff5bb (HEAD, origin/master, origin/HEAD, master)
Author: thiagopnts <thiagopnts@gmail.com>
AuthorDate: Tue Nov 18 14:52:49 2014 -0200
Commit: Thiago Pontes <email@thiago.me>
CommitDate: Tue Nov 25 09:46:58 2014 -0200
open repository url if confirmed, closes #1
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ą :
Autorem jest osoba, która pierwotnie napisała dzieło, a osoba odpowiedzialna to osoba, która jako ostatnia zastosowała dzieło. Tak więc, jeśli wyślesz łatkę do projektu, a jeden z głównych członków zastosuje łatkę, oboje dostaniesz kredyt - ty jako autor, a główny członek jako zlecający.
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ść.