LINUX.ORG.RU

поиск файла

 


0

2

Есть файл, нужно понять: 1) есть ли он в git репозитории, 2) в каком коммите, 3) по какому пути.

Хотя бы первые два пункта как проще сделать?

Не проблема написать полный перебор всех коммитов, только не хочется велосипед писать.

★★★★
Ответ на: комментарий от imb

файл мог быть переименован не говоря уже о том что изменен внутри. нужно искать по содержимому файла (хешу) в каком коммите он есть

quest ★★★★
() автор топика

Есть файл, нужно понять:

Файл вообще отдельный? или точно из этого git'a?

1) есть ли он в git репозитории,

Я бы создал новую тестовую копию существующего git'a. И потом добавил этот файл в новый коммит. Все нужные соответствия git сам найдёт.

2) в каком коммите, 3) по какому пути.

Потом, через giggle например, можно посмотреть историю этого файла, где будет написано, как и что делали с этим файлом.

justAmoment ★★★★★
()
Ответ на: комментарий от justAmoment

представь есть у тебя твой публичный репозитарий. там твои файлы в куче веток с кучей коммитов. потом тебе дают файл который вроде похож на твой но не ясно менялся он или нет. нужно понять это. если не менялся то из какого коммита он и как называется у тебя.

quest ★★★★
() автор топика

Сделай вывод git log и в маску вывода добавь хеш файла. Грепни по нужному хешу.

anonymous
()
Ответ на: комментарий от anonymous

в маску вывода добавь хеш файла

я в мане такого модификатора не вижу

quest ★★★★
() автор топика

По sha1 файл можно найти так:

git log --pretty=%H | while read sha; do git ls-tree -r $sha | awk '{print "'$sha' " $3 " " $4}'; done | grep $YOUR_SHA

В первом столбце sha коммита, во втором sha файла, в третьем путь.

По регулярке так:

git rev-list --all | xargs git grep $YOUR_REGEX

По регулярке в diff-ах так:

paste -d'\n' <(git rev-list --all | tail -n +2) <(git rev-list --all | head -n -1) | xargs -L2 git diff -G $YOUR_REGEX
gv
()
Ответ на: комментарий от gv

да спасибо, что-то подобное я уже сделал.

я беру хеш через git hash-object потом просматриваю git rev-list --all, git ls-tree -r

quest ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.