Я попытался с 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
?
Проблема вроде того, как я могу получить ключ 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.
blob
hexsha
Shexsha
- это не то же самое, что коммитsha