Каков самый простой способ найти commit, когда какой-то конкретный файл был добавлен в репо? Я предполагаю, что для него нет встроенных функций git, не так ли?
Git - найти фиксацию при создании файла
Ответ 1
Это легко. следующие команды показывают сначала, что этот файл был добавлен в репо.
git log --oneline filename | tail -1
Ответ 2
Вы можете сказать:
git log -1 --reverse --pretty=oneline filename
Это должно дать вам первое коммит.
От git help
:
-<n>
Limits the number of commits to show. Note that this is a commit
limiting option, see below.
--reverse
Output the commits in reverse order. Cannot be combined with
--walk-reflogs.
Чтобы устранить сообщение фиксации, скажите:
git log -1 --format="%H" --reverse filename
Ответ 3
Вероятно, самая простая вещь - это что-то простое:
git log FILE | grep commit | tail -1 | awk '{ print $NF }'
Ответ 4
Если вы действительно хотите найти коммит, который представил файл, вы должны рассмотреть переименование. Таким образом, используйте
git log --follow --diff-filter=A -- <filepath>
- diff-filter = [(A | C | D | M | R | T | U | X | B)... [*]]
Выберите только файлы, которые были добавлены (A), скопированы (C), удалены (D), изменены (M), переименованы (R)...- следовать
Продолжайте перечислять историю файла за пределами переименований (работает только для одного файла).
В конце концов вы также должны настроить порог --find-renames
.
- найти-переименовывает [=]
Если вы создаете diff, обнаруживаете и сообщаете переименования для каждой фиксации. Для следующих файлов переименований во время прохождения истории см. --follow. Если указано n, это пороговое значение для индекса подобия (т.е. Количество добавлений/исключений по сравнению с размером файлов). Например, -M90% означает, что Git должен рассматривать пару delete/add как переименование, если более 90% файла не изменилось. Без знака% номер должен быть прочитан как дробь с десятичной точкой перед ним. Ie, -M5 становится 0,5 и, таким образом, совпадает с -M50%. Аналогично, -M05 совпадает с -M5%. Чтобы ограничить обнаружение точным переименованием, используйте -M100%. По умолчанию индекс подобия равен 50%.