我正在尝试编写一个相当简单的函数(我想)。
我希望用户在他的计算机上指定检出git仓库的路径。 (需要身份验证的git仓库。)
然后我想对该文件夹进行git pull以获取任何更改。
我的代码如下所示:
import git
repo=git.cmd.Git(GIT_PATH)
repo.pull()
这在我的Linux机器上完美运行,它从不要求任何凭据(我猜是因为ssh-agent已经解锁了密钥并在我的脚本需要时提供凭据)。
但是在Windows上,我无法让它工作。我已经安装了putty并将关键字加入了选美比赛。我可以使用TortoiseGit查看repo,但它工作得很好,但是如果我在Windows机器上执行上面的代码,我会得到:
Traceback (most recent call last):
File "test.py", line 2, in <module>
repo = git.repo.base.Repo.clone_from(GIT_PATH, "t
mp")
File "C:\Python34\lib\site-packages\git\repo\base.py", line 849, in clone_from
return cls._clone(Git(os.getcwd()), url, to_path, GitCmdObjectDB, progress,
**kwargs)
File "C:\Python34\lib\site-packages\git\repo\base.py", line 800, in _clone
finalize_process(proc)
File "C:\Python34\lib\site-packages\git\util.py", line 154, in finalize_proces
s
proc.wait()
File "C:\Python34\lib\site-packages\git\cmd.py", line 309, in wait
raise GitCommandError(self.args, status, self.proc.stderr.read())
git.exc.GitCommandError: 'git clone -v ssh://git@git.path/repo tmp' re
turned with exit code 128
stderr: 'Cloning into 'tmp'...
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
编辑:我想补充一点,我没和GitPython结婚。如果有人知道另一个可以解决我的问题的库,那也可以。