git push origin 提示远程 refspec 部分不是有效的名称

17
我使用GitHub账户创建了一个远程仓库,链接为https://github.com/darKoram/sphero_tracker.git。目前它只包含一些维基页面,但我已经准备好上传我的代码。
我使用...(下文未给出,无法翻译)
git push origin git@github.com:/darkoram/shpero_tracker.git

我也尝试过。
git push origin https://github.com/darKoram/sphero_tracker.git

每次我都得到以下信息:

远程 refspec 的一部分在 https://github.com/darKoram/sphero_tracker.git 中不是有效的名称。

我以前推送时没有遇到过问题。只是不知道我在这里做错了什么。
我有一点进展。按照marshall的指示和下面生成ssh密钥的链接,但仍然出现以下错误:
git push -u origin master ERROR: 仓库未找到。 fatal: 远程端突然挂断
我已经确定我的ssh密钥是好的,并通过尝试将id_rsa.pub中的内容添加到我的github上来验证它们是否存在(它说密钥已经存在)。 $ ssh -T git@github.com Hi darKoram!你已经成功验证,但GitHub不提供shell访问。

https://help.github.com/articles/generating-ssh-keys

ssh -T -p 443 git@ssh.github.com 无法验证主机[ssh.github.com]:443 ([207.97.227.248]:443)的真实性。 RSA密钥指纹为16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48。 您确定要继续连接吗(是/否)? 是 警告: [ssh.github.com]:443,[207.97.227.248]:443(RSA)已被永久添加到已知主机列表中。 Hi darKoram! 您已成功进行身份验证,但GitHub不提供shell访问

git remote -v origin git@github.com:darKoram/shpero_tracker.git (拉取) origin git@github.com:darKoram/shpero_tracker.git (推送)

但是该仓库似乎确实存在 http://www.pasteall.org/pic/show.php?id=36560

7个回答

14

为什么不按照GitHub给出的说明操作呢?

git remote add origin git@github.com:darkoram/shpero_tracker.git
git push -u origin master

您输入的命令是想要将名为git@github.com:/darkoram/shpero_tracker.git的分支推送到名为origin的远程仓库,但显然这是不正确的。


9

原帖作者最初的问题是:

I use

git push origin git@github.com:/darkoram/shpero_tracker.git

I also tried

git push origin https://github.com/darKoram/sphero_tracker.git

both times I get

remote part of refspec is not a valid name in https://github.com/darKoram/sphero_tracker.git

错误指的是您未使用有效的refspec。一个refspec采用以下形式([]中的项目是可选的,<>中的项目是参数):
[+]<source>[:<destination>]

在上述格式中,源和目标都是引用,Git 中的分支也是引用,因此您可以使用分支作为 refspecs。例如,以下是有效且等效的 refspecs:
master
master:master

使用 git push 的两个 refspecs:

git push origin master
git push origin master:master

将本地分支master推送到远程origin上名为master的分支。

你的问题

你使用了:

git push origin git@github.com:/darkoram/shpero_tracker.git

git@github.com:/darkoram/shpero_tracker.git 不是一个有效的引用/分支; 它是你远程仓库的URL。这可能是Git抱怨refspec无效的原因。

推送分支的正确方法是:

git push origin <branch>

参见

  • 有关refspec语法的更详细解释,请参阅{{link1:man git push}}。
  • 有关refspecs的另一种解释,请参阅{{link2:Pro Git § 9.5 Git Internals - The Refspec}}。

4

2
请注意您在远程地址中使用的大小写(大写、小写):

请考虑您在这些远程地址中使用的大小写(大写、小写):

git remote add origin git@github.com:darKoram/shpero_tracker.git
# NOT:
git remote add origin git@github.com:darkoram/shpero_tracker.git # won't work
#                                      ^^^
#                                       |

请参见:

注意:本翻译保留了HTML标签,旨在使内容更准确和易于理解。

2
最终,我成功连接了,但是在尝试 git push origin master 时,尽管我的 repo 只有默认的 Readme.md,但我仍然遇到了“快进”错误。我尝试了手册中的建议,但最终,当我的开发文件夹被推送到 GitHub 时,该文件夹显示为绿色且无法打开。我执行的 git pull --rebase 还不知何故从我的本地 git repo 中排除了我的开发文件,并且我找不到任何添加它们回去的方法。
最终,我不得不创建一个新的 GitHub repo 和一个新的本地 repo。这个过程中关键的一步是第三步,在尝试推送之前拉取几乎为空(除了 Readme.md)的 repo。
  1. 创建 GitHub repo
  2. git add remote origin (https://... 在 GitHub 页面上的 URL)
  3. git clone origin master
  4. 创建本地 repo;添加;提交;
  5. git push origin
我想,如果我没有接受对话框提供的创建 repo 的 Readme 的选项,那么第 3 步就是不必要的,但奇怪的是,这个默认选项使得在许多教程中详细阐述的简单 repo 创建过程变得复杂。

1

在我的情况下,我也遇到了相同的错误。

fatal: remote part of refspec is not a valid name in https://github.com/username/repo.git

起初我以为是因为更改了用户名(因为我最近在Github上更改了用户名),但这并不是问题。

当我尝试使用git fetch和git pull时,仍然出现相同的错误。

最后,问题只是通过

git push origin master 

没有想法,但这个有效。

0

我今天遇到了类似的问题。顺便说一下,这是解决方法:

git fetch 然后 git pull origin mybranch (响应:“已经是最新的”)

然后 git push origin mybranch

我猜可能需要获取上游父分支相关的内容(?)。如果有人能解释为什么这样解决,我很愿意听取建议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接