Как получить последний коммит определенного файла, используя python?

1

Я попытался с GitPython, но я просто получаю фактический хэт-код git.

import git
repo = git.Repo(search_parent_directories=True)
repo.head.commit.hexsha

Но для trazability я хочу сохранить хэш-код git commit определенного файла, то есть эквивалент этой команды (используя git)

git log -n 1 --pretty=format:%h -- experiments/test.yaml

Можно ли GitPython с помощью GitPython?

Теги:
python-3.x
gitpython

1 ответ

0

Проблема вроде того, как я могу получить ключ sha для любого файла репозитория. указывает на объект Tree, предоставляя доступ для рекурсивного обхода деревьев git с доступом ко всем метаданным, включая хэш SHA1.

self.assertEqual(tree['smmap'], tree / 'smmap')          # access by index and by sub-path
for entry in tree:                                         # intuitive iteration of tree members
    print(entry)
blob = tree.trees[0].blobs[0]                              # let get a blob in a sub-tree
assert blob.name

blob.hexsha будет SHA1 blob.

  • 0
    blob hexsha S hexsha - это не то же самое, что коммит sha
  • 0
    @nanounanue Истина: из BLOB-объекта вам нужно вернуться к его дереву (которое у вас есть), а затем к фиксации (например, repo.heads.master.commit.tree). Таким образом, вам нужно выполнить поиск по blob-дереву для каждого коммита (ветви), чтобы проверить blob.name и напечатать коммит sha.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню