如何创建具有不同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。裸回购没有工作树,因此不适合将裸回购路径设置为工作树。