Поиск коммитов, которые ссылаются на данный объект - PullRequest
2 голосов
/ 08 августа 2010

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

Я знаю, что файл находится в репо, потому что git show $(git hash-object $the_file) работает.

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

Ответы [ 4 ]

1 голос
/ 08 августа 2010

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

1 голос
/ 08 августа 2010

Если в текущей версии представлен конкретный комментарий, который вы можете проверить (с помощью программы модульного тестирования, сценария оболочки и т. Д.), Вы можете использовать инструмент git bisect, чтобы найти коммит, ответственный за этот комментарий.* Вот руководство этой команды: http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html

0 голосов
/ 08 августа 2010

Получите хэш заданной версии файла, используя git hash-object <file>, затем используйте git log --raw -- <file> и выполните поиск через пейджер (это '/' в 'less' и в 'more') для этого хэша.

0 голосов
/ 08 августа 2010

Как насчет git log <the file>?

...