2016-05-04 14 views
1

gitpythonを使ってgerritプロジェクトのchangeを自分のローカルリポジトリにプルしようとしています。これはgitpythonを使ってgerritプロジェクトを変更しました

ここ
git pull origin refs/changes/25/225/1 

refs/changes/25/225/1gerritに提出されていない変更で、次のコマンドを使用して行うことができます。私はgerritプロジェクトをディレクトリにクローンしました。今、私はpullこのディレクトリに提出していない変更したいと思います。下記のコードは.gitファイルを含むディレクトリへのgit pullへの通常の方法です。ここで

#gitPull.py 

import git 

repo = git.Repo('/home/user/gitRepo') 
o = repo.remotes.origin 
o.pull() 

gitRepoは(それがクローン化されたヘリット・プロジェクトである).gitフォルダがあります。私は多くの検索をしましたが、gitpythonを使用して上記のコマンドgit pull origin refs/changes/25/225/1を実行する方法が見つかりませんでした。

+0

私はgitpythonユーザーではないけど、あなたはルールで起動した場合*「プルを使用するように変更する(「プルを使用することはありません」あなたが決して*使用する必要がないポイントに達すると ")、2つの基本的なステップ、' git fetch'と 'git merge'に操作を分割すると、あなたはそれらを非常に簡単に見つけることができるでしょうgitpythonで行うこと。 – torek

+0

私は 'git'で' fetch'または 'merge'する方法を探していました。 'git'関数で' git.execute() 'を使うと見つかりました。それがトリックでした。 'fetch'と' merge'のどちらか、あるいは直接 'pull'のどちらでも使うことができました。 – nidHi

答えて

0
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"]) 

​​を使用して同じことができます。

1

だけでなく、それはrefspec parameter to the pull methodとして支店を与えるように簡単です:

import git 

repo = git.Repo('/home/user/gitRepo') 
o = repo.remotes.origin 
o.pull('refs/changes/25/225/1') 
関連する問題