Поиск даты / времени, когда файл был впервые добавлен в Git-репозиторий. - PullRequest
37 голосов
/ 06 марта 2010

Существует ли простая команда Git для определения «даты создания» файла в хранилище, то есть даты, когда он был впервые добавлен?

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

Ответы [ 2 ]

50 голосов
/ 06 марта 2010

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

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

30 голосов
/ 03 сентября 2014

нативное решение:

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

Указывает последнюю «дату создания» файла в хранилище и делает это независимо от того, переименовывает / перемещает файл.

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

Это ограничение необходимо, поскольку файл может быть добавлен более одного раза. Например, его можно добавить, затем удалить, а затем снова добавить. В таком случае --diff-filter=A выдаст несколько строк для этого файла.

Чтобы получить первую дату создания в первой строке, мы должны использовать опцию --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). Таким образом, мы вынуждены некоторое время работать вокруг, чтобы получить первую дату создания.

git log --diff-filter=A --follow --format=%aI -- <fname> | tail -1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...