Git/GitHub可以';Don’别逼着主人
我是Git/GitHub新手,遇到了一个问题。我创建了一个测试项目并将其添加到本地存储库中。现在我正在尝试将文件/项目添加到远程存储库 以下是我所做的(这是有效的)- 现在,当我尝试使用以下命令将存储库推送到GitHub时,我得到了以下错误-Git/GitHub可以';Don’别逼着主人,git,github,Git,Github,我是Git/GitHub新手,遇到了一个问题。我创建了一个测试项目并将其添加到本地存储库中。现在我正在尝试将文件/项目添加到远程存储库 以下是我所做的(这是有效的)- 现在,当我尝试使用以下命令将存储库推送到GitHub时,我得到了以下错误- git push origin master 错误- fatal: remote error: You can't push to git://github.com/my_user_name/my_repo.git Use git@github.com:
git push origin master
错误-
fatal: remote error:
You can't push to git://github.com/my_user_name/my_repo.git
Use git@github.com:my_user_name/my_repo.git
如果转到,您将看到一个文本框,您可以在其中选择存储库的git路径。你会想用这个的 GitHub不支持推送Git协议,这是由您使用以
Git://
开头的URL表示的。正如错误消息所说,如果要推送,应该使用SSH URLgit@github.com:my_user_name/my_repo.git
或“智能HTTP”协议,方法是使用GitHub为存储库显示的https://
URL
(更新:令我惊讶的是,一些人显然认为我的意思是“https”意味着“智能HTTP”,而我不是。Git过去有一个“哑HTTP”协议,不允许在“智能HTTP”之前推送GitHub所使用的传输协议已被介绍-可以通过http
或https
使用。Git使用的传输协议之间的差异在下面的链接中解释。)
如果要更改源URL,只需执行以下操作:
git remote set-url origin git@github.com:my_user_name/my_repo.git
或
更多信息请参见。Mark Longair使用git远程设置url的解决方案…非常清楚。您也可以通过直接编辑.git/config文件的此部分来获得相同的行为: 之前:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git://github.com/my_user_name/my_repo.git
之后:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:my_user_name/my_repo.git
(与此相反,
git remote set url…
调用会产生上述更改。)对于新手来说,有一个简单的解决方案:
在本地.git目录(config
)中编辑配置文件。将下面的git:
更改为https:
[remote "origin"]
url = https://github.com/your_username/your_repo
使用,但请确保使用指向存储库的HTTPS链接:
git remote set-url origin https://github.com/my_user_name/my_repo.git
然后可以使用git push origin master升级git客户端后,我遇到了这个问题,突然我的存储库无法推送 我发现一些旧的遥控器具有错误的
url
值,即使我当前活动的遥控器具有相同的url
值,并且工作正常
但是也有pushurl
param,所以为旧的遥控器添加它对我来说很有用:
之前:
[remote "origin"]
url = git://github.com/user/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = git@github.com:user/repo.git
注意:文件“config”的这一部分已多年未使用,但新客户端抱怨URL错误:
因此,我将pushurl
param添加到旧的遥控器:
[remote "composer"]
url = git://github.com/user/repo.git
fetch = +refs/heads/*:refs/remotes/composer/*
pushurl = git@github.com:user/repo.git
你克服它的最快方法就是用它给出的建议来替换
origin
使用以下命令代替git push origin master:
git push git@github.com:my_user_name/my_repo.git master
我将我的pubkey添加到github.com,这是成功的:
ssh -T git@github.com
但在错误地执行此操作后,我收到了“你不能推”错误:
git clone git://github.com/mygithubacct/dotfiles.git
git remote add origin git@github.com:mygithubacct/dotfiles.git
...edit/add/commit
git push origin master
而不是做我应该做的事情:
mkdir dotfiles
cd dotfiles
git init
git remote add origin git@github.com:mygithubacct/dotfiles.git
git pull origin master
...edit/add/commit
git push origin master
使用以下调用克隆回购时会发生此错误:
git clone git://github.com/....git
这本质上将您设置为一个纯拉式用户,无法推送更改
我通过打开repo的.git/config
文件并更改行来修复此问题:
[remote "origin"]
url = git://github.com/myusername/myrepo.git
致:
带有git
用户的ssh+git
协议是Github首选的身份验证机制
这里提到的其他答案在技术上是可行的,但它们似乎都绕过了ssh,要求您手动输入密码,这可能是您不想要的。要全局设置
https
,而不是git://
:
git config --global url.https://github.com/.insteadOf git://github.com/
以下CMND将解决此问题
git pull --rebase
git push
在所有github页面的底部都有一个帮助链接()。帮助描述了许多主题,包括这个主题。我建议您阅读这些内容,然后就您不了解的特定内容提问。如果jamessan在帮助页面中指向特定位置,这会更有用。可能会重复,因此我更改了URL并重试推送,立即获取此错误-错误:my_user_name/my_repo.git不存在。你输入的正确吗?致命:远程端意外挂起是您设置的URL,您可以从GitHub上的存储库页面复制并粘贴该URL吗?(顺便说一句,它是区分大小写的。)好吧,你必须在GitHub上创建存储库,然后才能推送到它——当你这样做时,它会告诉你如何克隆或推送到存储库。我刚才遇到了同样的问题。实际上,问题是你在github.com和你的用户名之间有一个斜杠“/”。它应该是一个冒号“:”。这就是问题所在:D@WilmerEHenaoH:那可能是你的问题,但这不是问题或我的答案中的问题;)(只是出于兴趣,有时会出现混淆,其中一个使用冒号分隔主机名和路径,另一个不使用冒号。)不正确,https协议不允许推送。请参阅“ProGit”一书,第4.1.4节“HTTP/S协议”。Link:@KevinJ.Rice:嗯,它在哪里说的?Github使用智能HTTP协议,它允许推送。它适合我。然后只需键入
gitpush
即可。
[remote "origin"]
url = git://github.com/myusername/myrepo.git
[remote "origin"]
url = ssh+git://git@github.com/myusername/myrepo.git
git config --global url.https://github.com/.insteadOf git://github.com/
git pull --rebase
git push