Я делаю простой git командный тест, который отлично работает с терминала bash.
$ pwd
#/mnt/some_dir
$ git clone git@github.com:my-git/my-repo.git
$ cd my-repo
$ git status
Теперь я выполняю то же самое из скрипта python (часть того же репо my-repo. git), ниже приведен контент (после git клон из bash)
import os
print os.getcwd()
os.chdir('my-repo')
print os.getcwd()
os.system('git status')
получение журнала ниже с git сбой $ python / mnt / some_dir / my-repo / python .py
/mnt/some_dir
/mnt/some_dir/my-repo
fatal: Not a git repository: /mnt/some_dir
Мой вопрос заключается в том, почему статус git не выполняется внутри git репо, даже после того, как я выполняю изменение в предыдущем шаге?
Я даже пытался с подпроцессом, но получаю ту же ошибку
output = subprocess.check_output(['git', 'status'], cwd='/mnt/some_dir/my-repo')
fatal: Not a git repository: /mnt/some_dir