Можно ли изменить дату принятия Git на произвольную дату, которая слишком далеко? - PullRequest
0 голосов
/ 07 мая 2019

Я знаю о GIT_AUTHOR_DATE и GIT_COMMITTER_DATE и всех методах, которые помогают нам изменить дату принятия git, и, например, я хочу изменить дату последнего принятия с помощью следующей команды:

GIT_COMMITTER_DATE="2019-01-01 22:01:02 +0000" git commit --amend --no-edit --date "2019-01-01 22:01:02 +0000"

, так как яЯ работаю в международной компании. Мне нужно зафиксировать изменения в персидском (Jalali) формате даты, поэтому мне нужно использовать 1398 в качестве номера года для принятия изменений (не 2019!), но, похоже, GIT не принимает дату, которая слишкомдалеко

1 Ответ

0 голосов
/ 09 мая 2019

Git, как и многие другие программы Unix, сохраняет даты в виде метки времени Unix, которая представляет собой количество секунд с 1 января 1970 года в полночь по UTC.Все эти временные метки указываются с использованием григорианского календаря, и, поскольку Git предназначен только для анализа временных меток, которые есть в григорианском календаре, попытка указать номер 1398 года не будет соответствовать ожидаемому вами поведению: Git будет думать, что вы пытаетесьпредоставить григорианский год 1398 г. н.э.Любые другие инструменты, такие как хост-сервер Git, будут думать то же самое.

Более того, в 32-разрядных системах время сохраняется как 32-разрядное целое число, что означает диапазон допустимых временных отметок.включает только григорианские годы 1902–2038 гг.Если вы используете 32-битную версию Git, он даже не сможет выразить 1398 год (который, опять же, он рассматривает как 621 год назад).В наши дни большинство систем Unix являются 64-битными, но многие пользователи Windows по-прежнему используют 32-битные программы, поэтому, возможно, ваша версия Git не в состоянии обработать эту дату.

Как ни печально, но искажем, нет хорошего способа заставить Git производить негригорианский вывод или обрабатывать негригорианский ввод.Он предназначен для обработки временных меток так, как это делает Unix, что очень тесно связано с григорианским календарем.Возможно, вы можете использовать формат %x %X в тех местах, где вы хотели бы видеть дату и время, и в вашей системе он может создавать локализованный календарь, но он также не может.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...