Подтвердить что ты не робот

Поиск даты/времени, когда файл был сначала добавлен в репозиторий Git

Есть ли простая команда Git для определения "даты создания" файла в репозитории, то есть даты, когда она была первой добавлен?

Было бы лучше, если бы это можно было определить даже при переименовании/перемещении файлов. Я хотел бы, чтобы это был компьютерно-читаемый однострочный вывод; возможно, я не понял правильные варианты git log <fname>, чтобы сделать это.

4b9b3361

Ответ 1

git log --format=%aD <FILE> | tail -1

С помощью этой команды вы можете вывести всю дату об этом файле и извлечь последний

Ответ 2

Собственное решение:

git log --diff-filter=A --follow --format=%aD -1 -- <fname> 

Он дает дату создания last "файла в репозитории и делает это независимо от переименования/перемещения файлов.

-1 является синонимом --max-count=1 и ограничивает количество коммитов для вывода (не более одного в нашем случае).

Чтобы получить дату создания first, мы должны использовать параметр --reverse без ограничений (поскольку limit применяется перед заказом).

git log --diff-filter=A --follow --format=%aI --reverse -- <fname> | head -1

%aI указывает дату в строгом формате ISO 8601 (например, 2009-06-03T07:08:51-07:00).

Но эта команда не работает должным образом из-за известной ошибки в Git (см. " - follow игнорируется при использовании с --reverse" в Git maillist). Итак, мы вынуждены некоторое время использовать некоторую работу, чтобы получить дату создания first.

git log --diff-filter=A --follow --format=%aI -- <fname> | tail -1