Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建具有不同git dir和工作树路径的gitpythonrepo对象?_Python_Git_Gitpython - Fatal编程技术网

如何创建具有不同git dir和工作树路径的gitpythonrepo对象?

如何创建具有不同git dir和工作树路径的gitpythonrepo对象?,python,git,gitpython,Python,Git,Gitpython,从我用来执行此操作的命令行: $git --git-dir=/opt/git/annotation.git --work-tree=/path/to/worktree/ commit -m 'commit message command line' 现在,我必须使用GitPython从python脚本调用git,这就是我尝试的: # script.py from git import * repo = Repo('/opt/git/annotation.git') repo.index.a

从我用来执行此操作的命令行:

$git --git-dir=/opt/git/annotation.git --work-tree=/path/to/worktree/ commit  -m 'commit message command line'
现在,我必须使用GitPython从python脚本调用git,这就是我尝试的:

# script.py
from git import *

repo = Repo('/opt/git/annotation.git')
repo.index.add('/path/to/worktree/')
repo.git.add('/path/to/worktree/')
repo.git.commit(m='commit message from script')
我有:

  File "/path/to/script.py", line 54, in git_commit
    repo.index.add('/path/to/worktree/')
    ...
    raise InvalidGitRepositoryError("require non-bare repository")
InvalidGitRepositoryError: require non-bare repository

我对GitPython知之甚少,但由于日志上说“需要非裸存储库”,我猜/path/to/worktree/是由
git init--bare
git clone--bare
初始化的裸repo。裸repo没有工作树,因此不适合将裸repo路径设置为工作树。我对GitPython知之甚少,但由于日志上说“需要非裸存储库”,我猜/path/to/worktree/是由
git init--bare
git clone--bare
初始化的裸repo。裸回购没有工作树,因此不适合将裸回购路径设置为工作树。