我在 Git 存储库上运行 Gitolite,我在那里有用 Python 编写的 post-receive 钩子。我需要在 git 存储库目录中执行“git”命令。有几行代码:
proc = subprocess.Popen(['git', 'log', '-n1'], cwd='/home/git/repos/testing.git' stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.communicate()
在我做出新的提交并推送到存储库后,脚本执行并说
fatal: Not a git repository: '.'
如果我跑
proc = subprocess.Popen(['pwd'], cwd='/home/git/repos/testing.git' stdout=subprocess.PIPE, stderr=subprocess.PIPE)
它说,正如预期的那样,正确的 git 存储库路径(/home/git/repos/testing.git)
如果我从 bash 手动运行此脚本,它可以正常工作并显示“git log”的正确输出。我做错了什么?