我在github上有两个存储库,使用gitpython我试图将文件从一个存储库推送到另一个远程存储库。我已经设法使用git但使用gitpython代码挣扎了。
git remote add remote_to_push git@bitbucket...
git fetch remote_to_push
git checkout remote_to_push/master
git add file_to_push
git commit -m "pushing file"
git push remote_to_push HEAD:master
我设法使用以下
创建遥控器的repo对象from git import Repo
repo = Repo('path/to/other/git/repo')
remote = repo.remotes.origin
如果我打电话
,我无法弄清楚如何添加内容然后推送remote.add("file_to_push")
然后我得到关于create()函数的错误
TypeError: create() takes exactly 4 arguments (2 given)
尝试使用
跟踪他们在How to push to remote repo with GitPython中所做的工作remote.push(refspec='{}:{}'.format(local_branch, remote_branch))
我认为它应该使用master和master作为远程分支,因为它们都必须存在但是它给了我错误
stderr: 'error: src refspec master does not match any.'
由于
答案 0 :(得分:1)
解决了它。 首先创建了另一个repo的遥控器
git remote add remote_to_push git@bitbucket...
然后是gitpython代码
from git import Repo
repo = Repo('path/to/other/git/repo') #create repo object of the other repository
repo.git.checkout('remote_to_push/master') #checkout to a branch linked to the other repo
file = 'path/to/file' #path to file to push
repo.git.add(file) # same as git add file
repo.git.commit(m = "commit message") # same as git commit -m "commit message"
repo.git.push('remote_to_push', 'HEAD:master') # git push remote_to_push HEAD:master
除了文档之外,如果有人在gitpython中苦苦挣扎,我发现以下内容非常有用,因为我发现它很痛苦