私はGitPythonを使ってGitlabサーバーからリポジトリを複製しています。GitPythonを使うには?
git.Repo.clone_from(gitlab_ssh_URL, local_path)
後でこのレポを更新しようとする別のスクリプトがあります。
try:
my_repo = git.Repo(local_path)
my_repo .remotes.origin.pull()
except (git.exc.InvalidGitRepositoryError, git.exc.NoSuchPathError):
print("Invalid repository: {}".format(local_path)
に-の間に私はこのようなタグをチェックアウトする場合を除き、この作業素晴らしい:
git.exc.GitCommandError: 'git pull -v origin' returned with exit code 1
を:引っ張ったときに、私はGitCommandErrorを取得する。この場合
tag_id = choose_tag() # Return the position of an existing tag in my_repo.tags
my_repo .head.reference = my_repo.tags[tag_id]
my_repo .head.reset(index=True, working_tree=True)
は、私はすでに2回のドキュメンテーションを読んでいて、どこにプロブルムがあるのか分かりません。特にSourceTreeのような専用ツールでこのリポジトリを取得しようとすると、エラーや警告なしで作業しているためです。 私は、タグ付きバージョンをチェックアウトしたという事実が、分離されたHEADであっても、私が引っ張ってしまうのを防ぐ方法を理解していません。
- この場合、どうすればよいですか?
- ここで何が起こっているのですか?
編集:アドバイスとして、私はexception.stdoutとexception.sterrを調べようとしましたが、ここでは何も役に立ちません(それぞれb "とNone)。だから私は何が間違っているのかを理解するのが難しい。
悲しいことに、stderrまたはstdout(それぞれb "とNone)には何もありません。私が得る唯一のものは例外コメントです: 'git pull -v origin'は終了コード1で返されます。 それで私はここで少し失われています。 そして、私はちょっと新しいgitを作成しません。レポ(パス)とプルしようとします。 – Rbtnk