Я работаю в Windows и пытаюсь запустить команду git diff в сценарии предварительной фиксации (Python) репозитория. Мой вызов Python выглядит так:
Код: Выделить всё
repo_dir = 'D:/git/current_uic/src/gtc/resource'
cmd = ['diff', '--name-only']
print(Popen(['git', '--git-dir={}'.format(repo_dir + '/.git'),
'--work-tree={}'.format(repo_dir)] + cmd,
stdin=PIPE, stdout=PIPE).communicate())
Каждый раз, когда я делаю коммит в репозитории «D:/git/current_uic/src/gtc», я получаю следующее:
Код: Выделить всё
fatal: unable to read 6ff96bd371691b9e93520e133ebc4d84c74cd0f6
Обратите внимание, что это перехватчик предварительной фиксации для репозитория 'D:/git/current_uic/src/gtc' и что 'D:/git/current_uic/src /gtc/resource» является подмодулем «D:/git/current_uic/src/gtc». Также обратите внимание, что если я открою Git bash и запущу следующее:
Код: Выделить всё
git --git-dir=D:/git/current_uic/src/gtc/resource/.git
--work-tree=D:/git/current_uic/src/gtc/resource diff --name-only
или если я просто запущу скрипт прямо из Git bash, я получу именно то, что хочу, независимо от рабочего каталога.
Есть идеи относительно того, что здесь происходит?
Подробнее здесь:
https://stackoverflow.com/questions/248 ... -read-sha1