1

我正在尝试编写一个相当简单的函数(我想)。

我希望用户在他的计算机上指定一个已签出的 git repo 的路径。(需要身份验证的 git 存储库)。

然后我想对该文件夹进行 git pull 以获取任何更改。

我的代码如下所示:

    import git
    repo=git.cmd.Git(GIT_PATH)
    repo.pull()

这在我的 Linux 机器上完美运行,它从不要求任何凭据(我猜是因为 ssh-agent 已经解锁了密钥并在我的脚本需要时提供凭据)。

然而,在 Windows 上,我无法让它工作。我已经安装了腻子并添加了选美的关键。例如,我可以使用 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。如果有人知道另一个可以解决我的问题的库,那也可以。

4

0 回答 0