GitPythonを使用してgitリポジトリをプルする方法を見つけようとしています。これまでのところ、これは私が公式ドキュメントから取ったものです ここ 。
test_remote = repo.create_remote('test', 'git@server:repo.git')
repo.delete_remote(test_remote) # create and delete remotes
Origin = repo.remotes.Origin # get default remote by name
Origin.refs # local remote references
o = Origin.rename('new_Origin') # rename remotes
o.fetch() # fetch, pull and Push from and to the remote
o.pull()
o.Push()
事実、repo.remotes.Originにアクセスして、Origin(Origin.rename)の名前を変更せずにプルを実行したいのですが、どうすればこれを実現できますか?ありがとう。
私はリポジトリ名を直接取得することでこれを管理しました:
repo = git.Repo('repo_name')
o = repo.remotes.Origin
o.pull()
受け入れられた答えが言うように、repo.remotes.Origin.pull()
を使用することは可能ですが、欠点は、実際のエラーメッセージをそれ自体の一般的なエラーに隠すことです。たとえば、DNS解決が機能しない場合、repo.remotes.Origin.pull()
は次のエラーメッセージを表示します。
_git.exc.GitCommandError: 'Error when fetching: fatal: Could not read from remote repository.
' returned with exit code 2
_
一方、 GitPythonでgitコマンドを使用repo.git.pull()
のように、実際のエラーが表示されます。
_git.exc.GitCommandError: 'git pull' returned with exit code 1
stderr: 'ssh: Could not resolve hostname github.com: Name or service not known
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.'
_