Проверка старого файла С оригиналом создает/изменяет метки времени

Там какой-либо путь состоит в том, чтобы знать или добраться, оригинал создают/изменяют метки времени?Спасибо.

72
задан svick 11 August 2012 в 22:13
поделиться

2 ответа

Полагаю, что единственные метки времени, записанные в базе данных Git'а - это метки времени автора и коммита. Я не вижу в Git'е возможности изменять метку времени файла, чтобы она соответствовала последнему коммиту, и вполне логично, что это не было бы поведением по умолчанию (потому что если бы это было так, Makefiles работал бы некорректно).

Вы могли бы написать скрипт для установки даты модификации файлов на время последнего коммита. Это может выглядеть примерно так:

IFS="
"
for FILE in $(git ls-files)
do
    TIME=$(git log --pretty=format:%cd -n 1 --date=iso -- "$FILE")
    TIME=$(date -j -f '%Y-%m-%d %H:%M:%S %z' "$TIME" +%Y%m%d%H%M.%S)
    touch -m -t "$TIME" "$FILE"
done
43
ответ дан 24 November 2019 в 12:37
поделиться

NO, Git просто не хранит такую (мета-) информацию , если только вы не используете сторонние инструменты, такие как metastore или git-cache-meta. Единственная сохраняемая метка времени - это время создания патча/изменения (время автора), а также время создания коммита (время коммиттера).

Это по замыслу, поскольку Git - это система управления версиями, а не утилита резервного копирования или инструмент синхронизации.

37
ответ дан 24 November 2019 в 12:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: