Я бачу це в цьому сховищі GitHub :
Що це означає? Як щось можна "створити 7 днів тому", а ще "скоїти 14 годин тому"?
commit --date=
. Шверн це дуже добре пояснює.
Я бачу це в цьому сховищі GitHub :
Що це означає? Як щось можна "створити 7 днів тому", а ще "скоїти 14 годин тому"?
commit --date=
. Шверн це дуже добре пояснює.
Відповіді:
У Git є окреме поняття автора (особа, яка написала код) та виконавця (особа, яка вчинила його в сховище). Так само можуть бути різні дати для обох. Зазвичай вони однакові.
Ви хочете, щоб вони відрізнялися насамперед, якщо особа, яка пише код або подає патч, не має доступу до сховища, як у проектах, які використовують списки розсилки для подання патчів. У цьому випадку особа, яка має доступ до push, застосує патч та запустить git commit
або перемикачі --author
та,--date
або використовуючи змінні середовища GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL та GIT_AUTHOR_DATE (задокументовано у дереві git-commit .
Інший випадок - використання git cherry-pick
або git rebase. Замовник - це особа, яка робить вишню, а автор - оригінальний комітет. Git допоможе встановити особу та дату автора для вас.
Ви можете побачити цю інформацію в сховищі за допомогою 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
також призводить до оновлення дати вчинення, тоді як дата автора залишається такою ж.
Це виглядає як суміш між тим, як Git працює з датами, і тим, як він посилався на ключові слова GitHub .
Git розділяє дати фіксації та дати автора. У Pro Git вони трохи розбігаються :
Автор - людина, яка спочатку написала твір, тоді як виконавцем - особа, яка останнім часом застосувала твір. Отже, якщо ви надсилаєте патч до проекту, і один з основних членів застосовує патч, ви обидва отримуєте кредит - ви як автор, а основний член як комітет.
Отже, хоча сам код був зроблений / написаний "7 днів тому" (локально), він не "застосований" або зафіксований до коду до "14 годин тому", оскільки його не було видно у віддаленому місці, поки цей посилання закрити повідомлення.