我查看了一些参考资料,但仍然遇到问题:
我想使用GitPython克隆远程存储库,创建一个新分支,并将新分支推送回远程。
这似乎可以工作:
import git
import subprocess
nm_brnch = 'new_branch'
# Clone
repo_url = r'my_remote.git'
repo = git.Repo.clone_from(repo_url, dnm_wrk, branch=r'some_branch')
# Create new branch
git = repo.git
git.checkout('HEAD', b=nm_brnch)
# Push new branch to remote
subprocess.call(f'git push -u origin {nm_brnch}')
但这段代码很丑,因为它使用了subprocess
而不是GitPython。
我尝试使用GitPython,但没有成功:
repo.head.set_reference(nm_brnch)
repo.git.push("origin", nm_brnch)
我参考了以下资料:
注意:请勿删除 HTML 标签。
repo.git.push('--set-upstream', remote_name, branch_name)
实际上并没有使用gitpython
API,而是直接调用了git
。难道没有办法使用API来获得更好格式化的返回值吗? - Seanny123remote.push()
中使用refspec
参数:https://dev59.com/PLzpa4cB1Zd3GeqPH0lZ#66820830 。这个答案有更多的细节,并链接到一个 GitHub 问题,其中与包作者进行了讨论:https://dev59.com/Din_s4cB2Jgan1znhSmI#61034176 - Tim