Мне нужна дата в специальном формате.
В Git 2.21 (Q1 2019) введен новый формат даты " --date=human", который изменяет свой вывод в зависимости от того, как далеко время от текущего времени .
« --date=auto» может использоваться для использования этого нового формата, когда вывод идет на пейджер или на терминал и в противном случае формат по умолчанию.
См. Коммит 110a6a1 , коммит b841d4f (29 января 2019 г.) и коммит 038a878 , коммит 2fd7c22 (21 января 2019 г.) Стивена П. Смита (``) .
Смотрите коммит acdd377 (18 января 2019) Линуса Торвальдса ( torvalds) .
(Слиты Junio C Hamano - gitster- в фиксации ecbe1be , 7 февраля 2019)
Добавить документацию в формате человеческой даты
Отображение информации о дате и времени в формате, аналогичном тому, как люди пишут даты в других контекстах.
Если год не указан, читатель делает вывод, что указана дата в текущем году .
Не отображая избыточную информацию, читатель концентрируется на другой информации .
Патч сообщает относительные даты на основе информации, полученной из даты на машине, на которой выполняется gitкоманда, во время ее выполнения.
Хотя формат более полезен для людей, отбрасывая выведенную информацию, ничто не делает его действительно человеком.
Если relativeформат даты ' ' еще не был реализован, то relativeбыло бы целесообразно использовать ' '.
Добавьте humanтесты формата даты.
При использовании humanнесколько полей подавляются в зависимости от разницы во времени между исходной датой и датой локального компьютера.
- В тех случаях, когда разница меньше года, поле года подавляется.
- Если время меньше суток; месяц и год подавлены.
check_date_format_human 18000 "5 hours ago" # 5 hours ago
check_date_format_human 432000 "Tue Aug 25 19:20" # 5 days ago
check_date_format_human 1728000 "Mon Aug 10 19:20" # 3 weeks ago
check_date_format_human 13000000 "Thu Apr 2 08:13" # 5 months ago
check_date_format_human 31449600 "Aug 31 2008" # 12 months ago
check_date_format_human 37500000 "Jun 22 2008" # 1 year, 2 months ago
check_date_format_human 55188000 "Dec 1 2007" # 1 year, 9 months ago
check_date_format_human 630000000 "Sep 13 1989" # 20 years ago
## Заменить предложенный autoрежим на ' auto:'
В дополнение к добавлению humanформата ' ', патч добавил autoключевое слово, которое можно использовать в файле конфигурации в качестве альтернативного способа указания человеческого формата. Удаление «auto» очищает humanинтерфейс формата.
Добавлена возможность указывать режим ' foo', если пейджер используется с использованием auto:fooсинтаксиса.
Поэтому в auto:humanрежиме даты по умолчанию humanиспользуется пейджер.
Так что вы можете сделать:
git config --add log.date auto:human
и ваши git logкоманды " " покажут удобочитаемый формат, если вы не пишете сценарии.
Git 2.24 (Q4 2019) упростил код.
См. Коммит 47b27c9 , коммит 29f4332 (12 сентября 2019 г.) Стивена П. Смита (``) .
(Слиты Junio C Hamano - gitster- в фиксации 36d2fca , 07 окт 2019)
Прекратите передавать код «сейчас» на дату
Commit b841d4f (Добавить humanформат в test-tool, 2019-01-28, Git v2.21.0-rc0) добавил get_time()функцию, которая позволяет $GIT_TEST_DATE_NOWв среде переопределять текущее время.
Поэтому нам больше не нужно интерпретировать эту переменную в cmd__date().
Поэтому мы можем прекратить передачу параметра " now" через функции даты, поскольку никто не использует их.
Обратите внимание, что нам нужно убедиться, что все предыдущие вызывающие абоненты, которые принимали nowпараметр " ", правильно использовали get_time().