【发布时间】:2015-10-24 08:12:28
【问题描述】:
我正在尝试通过 python 子进程运行 git 命令。我通过调用github的cmd目录下的git.exe来做到这一点。
我设法让大多数命令正常工作(初始化、远程、状态),但在调用 git add 时出现错误。到目前为止,这是我的代码:
import subprocess
gitPath = 'C:/path/to/git/cmd.exe'
repoPath = 'C:/path/to/my/repo'
repoUrl = 'https://www.github.com/login/repo';
#list to set directory and working tree
dirList = ['--git-dir='+repoPath+'/.git','--work-tree='+repoPath]
#init gitt
subprocess.call([gitPath] + ['init',repoPath]
#add remote
subprocess.call([gitPath] + dirList + ['remote','add','origin',repoUrl])
#Check status, returns files to be commited etc, so a working repo exists there
subprocess.call([gitPath] + dirList + ['status'])
#Adds all files in folder (this returns the error)
subprocess.call([gitPath] + dirList + ['add','.']
我得到的错误是:
fatal: Not a git repository (or any of the parent directories): .git
所以我搜索了这个错误,我发现的大多数解决方案都是关于不在正确的目录中。所以我的猜测也是这样。但是,我不知道为什么。 Git状态返回目录中的正确文件,我设置了--git-dir和--work-tree
如果我转到 git shell,我添加文件没有问题,但我无法找出这里出错的原因。
我不是在寻找使用 pythons git 库的解决方案。
【问题讨论】:
标签: python git github cmd subprocess