Git使用gitpython对gerrit项目进行更改

Git使用gitpython对gerrit项目进行更改,git,gerrit,gitpython,Git,Gerrit,Gitpython,我正在尝试使用gitpython将gerrit项目的更改拉入本地存储库。可以使用以下命令执行此操作: git pull origin refs/changes/25/225/1 此处,refs/changes/25/225/1是未在gerrit中提交的变更。我已将gerrit项目克隆到一个目录中。现在,我想拉取尚未提交到此目录的更改。下面提到的代码是将git拉入包含.git文件的目录的常用方法 #gitPull.py import git repo = git.Repo('/home/us

我正在尝试使用
gitpython
gerrit
项目的
更改
拉入本地存储库。可以使用以下命令执行此操作:

git pull origin refs/changes/25/225/1
此处,
refs/changes/25/225/1
是未在
gerrit
中提交的变更。我已将
gerrit
项目克隆到一个目录中。现在,我想
拉取
尚未提交到此目录的更改。下面提到的代码是将
git拉入包含
.git
文件的目录的常用方法

#gitPull.py

import git

repo = git.Repo('/home/user/gitRepo')
o = repo.remotes.origin
o.pull()
这里,
gitRepo
.git
文件夹(它是克隆的gerrit项目)。我进行了大量搜索,但没有找到使用
gitpython
执行上述命令的方法

import git
import os, os.path

g = git.Git(os.path.expanduser("/home/user/gitRepo"))
result = g.execute(["git", "pull", "origin", "refs/changes/25/225/1"])

可以使用
execute()

执行相同的操作。好吧,这很简单,只需将分支指定为:


我不是gitpython用户,但是如果您从规则“从不使用pull”(修改为“在您到达不需要使用它的点之后使用pull”)开始,并将操作分为另外两个基本步骤,
git fetch
git merge
,我敢打赌,你会发现这些在gitpython中很容易实现。我一直在寻找
获取
合并
git
的方法。发现可以对任何自定义的
git
函数使用
git.execute()。这就成功了。可以将其用于
获取
,然后
合并
,甚至直接
import git

repo = git.Repo('/home/user/gitRepo')
o = repo.remotes.origin
o.pull('refs/changes/25/225/1')