使用PyGithub和Python将本地git存储库推送到用户的远程git存储库

克里斯特杰

任务是

  1. 克隆公共存储库并将其存储在本地
  2. 使用您在本地下载的存储库内容初始化用户的新存储库(目标)。

CLI命令可以正常工作,但是我需要使用python来完成,当我运行此代码时,将打开一个github登录对话框,输入凭据,然后执行推送,但是在远程存储库上看不到任何内容,我们不能进行任何推送?

我也尝试过使用子过程模块,它不起作用。我检查了所有其他stackoverflow解决方案,但没有找到有效的解决方案。我需要一个新的解决方案或对此aap进行更正。谢谢。

import git

git.Repo.clone_from('https://github.com/kristej/Uniform-Database-Management.git','Uniforms')

repo = git.Repo('Uniforms')
target_repo = "https://github.com/kristej/Jojorabit.git"

# List remotes
# Reference a remote by its name as part of the object
print(f'Remote name: {repo.remotes.origin.name}')
print(f'Remote URL: {repo.remotes.origin.url}')

# Delete a default remote if already present
if repo.remotes.origin.url != target_repo:
    repo.delete_remote(repo.remotes.origin.name)

# Create a new remote
try:
    remote = repo.create_remote('origin', url=target_repo)
except git.exc.GitCommandError as error:
    print(f'Error creating remote: {error}')
    
# Reference a remote by its name as part of the object
print(f'Remote name: {repo.remotes.origin.name}')
print(f'Remote URL: {repo.remotes.origin.url}')

#Push changes
print(repo.git.push("origin", "HEAD:refs/for/master"))

我们不能推什么吗?

是。如果没有什么可推动的,那么推动将成功。

$ git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

$ git push
Everything up-to-date

但是您要推到一个奇怪的位置。HEAD:refs/for/master说推HEADrefs/for/masterrefs/for/master不是一回事。我想你的意思是refs/heads/master

但是除非真正需要,否则您不应该指定目的地,这HEAD不是master吗?让Git找出源(当前签出的分支)及其目的地(当前分支的上游,或基于的最佳猜测push.default)。

您只需进行大量更改即可origin,而无需再次指定。同样,根据本地分支配置,让push推算到哪里更安全。

print(repo.git.push())

您也不需要一键更改origin您可以改为添加一个新的遥控器并推送到该遥控器。

repo.create_remote('other_remote', url=target_repo)
repo.git.push("other_remote")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Visual Studio代码-连接到远程Git存储库,并将本地文件推送到新的远程存储库

如何使用Git将标签推送到远程存储库?

将本地Git存储库推送到新的远程服务器,包括所有分支和标签

如何将新的本地分支推送到远程Git存储库并进行跟踪?

Git重设-硬并推送到远程存储库

是否可以将git stash推送到远程存储库?

如何使用Git初始推送到远程存储库?

如何将修订后的提交推送到远程Git存储库?

将git存储库推送到具有历史记录的远程颠覆

如何将提交推送到由气隙分隔的远程Git存储库?

我可以将本地存储库推送到两个远程存储库吗?

远程和本地git存储库

git push将完整且独立的分支推送到远程存储库

将STS项目从本地存储库推送到其他用户创建的远程目录

自动提交和自动将本地存储库中的更改推送到git

如何使用Python和PyGithub / GitPython克隆git存储库?

我可以将文件添加到本地Git存储库中,但不能将其推送到远程

Git:将本地文件推送到远程存储库中的其他文件名

Git-将当前的Heroku存储库推送到远程github存储库

Git没有将新文件推送到远程存储库

如何将新的本地存储库推送到旧的远程存储库?

是否需要gitosis或gitolite才能通过HTTP / HTTPS将更改推送到远程git存储库?

无法将我的本地git存储库推送到远程存储库

推送到远程 Git 存储库而不记录单个本地更改

如何将本地git存储库推送到svn

如何在不添加远程的情况下将提交推送到 git 存储库?

我如何将提交推送到已经从本地存储库推送到 git 的 heroku?

将文件添加到本地 git 存储库,然后推送到远程:不起作用

将 git 存储库从本地拉到远程