Я вижу это в этом репозитории GitHub :
Что это значит? Как что-то может быть «написано 7 дней назад» и все же «совершено 14 часов назад»?
Я вижу это в этом репозитории GitHub :
Что это значит? Как что-то может быть «написано 7 дней назад» и все же «совершено 14 часов назад»?
commit --date=
. Шверн объясняет это очень хорошо.Ответы:
У Git есть отдельная концепция автора (человека, который написал код) и коммиттера (человека, который передал его в хранилище). Точно так же могут быть разные даты для обоих. Они обычно одинаковы.
Вы бы хотели, чтобы они отличались в первую очередь, если человек, пишущий код или отправляющий исправление, не имеет принудительного доступа к хранилищу, как в проектах, которые используют списки рассылки для отправки исправлений. В этом случае, люди с нажимным доступом будет применять патч и запустить
git commit
либо с--author
и--date
переключатели или с помощью переменных окружения GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL и GIT_AUTHOR_DATE (задокументировано в мерзавце-фиксации дереве .Другой случай - использование
git cherry-pick
или git rebase. Коммиттер - это человек, который делает выбор вишни, а автор - автор оригинального коммита. Git будет управлять установкой личности автора и даты для вас.Вы можете увидеть эту информацию в хранилище с
git log --pretty=fuller
.источник
git rebase
также приводит к тому, что дата фиксации обновляется, а дата автора остается неизменной.Это похоже на сочетание между тем, как Git работает с датами, и тем, как на него ссылались закрывающие ключевые слова GitHub .
Git разделяет даты коммитов и авторов. В Pro Git они немного отличаются :
Таким образом, хотя сам код был зафиксирован / написан «7 дней назад» (локально), он не был «применен» или исправлен к коду до «14 часов назад», поскольку он не был виден в удаленном режиме до тех пор, пока на него не ссылались сообщение.
источник