致命的:当前的分支主机没有上游分支

时间:2014-05-01 03:38:34

标签: git github

我试图将我的一个项目推送到github,我不断收到此错误:

peeplesoft@jane3:~/846156 (master) $ git push

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

     git push --set-upstream origin master

所以我试了一下并得到了这个:

peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master

fatal: Authentication failed

另一个stackoverflow线程建议我尝试以下操作,结果令人失望。

peeplesoft@jane3:~/846156 (master) $ git push -u origin master

fatal: Authentication failed

然后我尝试了这个:

peeplesoft@jane3:~/846156 (master) $ git config remote.origin.push HEAD

peeplesoft@jane3:~/846156 (master) $ git push

fatal: Authentication failed

任何提示?

29 个答案:

答案 0 :(得分:94)

您还可以使用以下命令:

git push -u origin master

这会在远程仓库中创建(-u)另一个分支。一旦使用ssh进行身份验证即可。

答案 1 :(得分:56)

您修复了推送,但是,与推送问题无关(我在“Why do I need to explicitly push a new branch?”中解释过:git push -u origin mastergit push -u origin --all),您现在需要解决身份验证问题。

这取决于您的网址(ssh在“git@github.com/yourRepo中,或https在https://github.com/You/YourRepo中)

对于https网址:

如果您的帐户受two-factor authentication保护,则您的常规密码将无效(对于https网址),as explained here or here

如果您的密码包含特殊字符(如this answer

,则会出现同样的问题

如果https不起作用(因为您不想生成辅助密钥,PAT:个人访问令牌),那么您可以切换到ssh,as I have shown here

答案 2 :(得分:29)

显然,当您第一次按下时忘记--all参数时,您也会收到此错误消息。我写了

git push -u origin

给出了这个错误,应该是

git push -u origin --all

哦,我喜欢这些复制粘贴错误......

答案 3 :(得分:10)

您需要先配置遥控器,然后再推送。

git remote add origin url-to-your-repo

Actual Instructions

答案 4 :(得分:8)

如果您定义了操作git push,则在命令行上未指定refspec,远程未配置refspec且命令行上提供的任何选项均未暗示refspec的情况下,应采取该操作

只需这样做:

git config --global push.default current

然后

git push

答案 5 :(得分:5)

不错

git push -f --set-upstream origin master

答案 6 :(得分:3)

从一个非常简单的方面来说,一旦您拥有其他分支,就不能仅用于推送分支

git push

但是即使您已经签出要推送的分支,也需要立即指定分支,所以

git push origin <feature_branch>

甚至还有master分支

答案 7 :(得分:3)

好吧,我在上传时遇到了同样的麻烦, 做与说的一样的事情: 早些时候,我试图通过https将终端推送到Linux中的存储库 喜欢

git push https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git

但是没有得到任何结果,因此我深入研究并尝试:

git push --set-upstream https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git master

它奏效了。这样,您将得到提示,输入用户名和密码。 我还生成了令牌,并且粘贴了令牌,从而成功完成了密码。

  1. 要生成令牌,请转到您的Github帐户并在“开发人员设置”中,然后创建另一个令牌。
  2. 获取后复制     该令牌并在询问时粘贴在密码提示中。

答案 8 :(得分:3)

首次使用git pull origin your_branch_name 然后use git push origin your_branch_name

答案 9 :(得分:2)

有一个简单的解决方案,这对我在macOS Sierra上工作。 我做了这两个命令:

git pull --rebase git_url(Ex: https://github.com/username/reponame.git)
git push origin master

如果在任何未来的推动之后它显示有关上游的任何致命错误,那么只需运行:

git push --set-upstream origin master

答案 10 :(得分:1)

我犯了一个忘记提交的简单错误:

git commit -m "first commit"

然后git push origin master工作。

答案 11 :(得分:0)

对我来说,这是因为我删除了隐藏的 .git 文件夹。

我通过删除文件夹,重新克隆并重新进行更改来修复它。

答案 12 :(得分:0)

遇到了几乎相同的问题,但不是来自 master 分支。 我尝试使用 $ git push 命令将两 (2) 个分支推送到我的远程存储库;不幸的是抛出了:

fatal: The current branch <branch-name> has no upstream branch. To push the current branch and set the remote as upstream, use

 git push --set-upstream origin <branch-name>

我使用以下命令修复了它:

$ git push -u origin --all

PS:我相信这里提供的解决方案应该能让 git 更容易地远程跟踪分支;这在某一天可能会派上用场,在处理具有几个分支的项目时。

答案 13 :(得分:0)

在推送到分支之前先使用这个命令

git config --global push.default current

执行上述命令后使用 git push 命令。

答案 14 :(得分:0)

这意味着您的远程存储库中没有您的分支(您要推送的分支),换句话说,您的远程存储库中不存在它(尚未创建)... 所以使用这个代码:

git push -u origin 'your branch'

此代码将在您的远程存储库中创建您的分支并将其推送...

答案 15 :(得分:0)

在我看来,这只是一个错误的默认 git 行为。 查看了 git 支持的所有选项,还查看了相关的 git 代码:

https://github.com/git/git/blob/140045821aa78da3a80a7d7c8f707b955e1ab40d/builtin/push.c#L188

我建议的最佳解决方案是简单地覆盖 push 默认命令:

git config --global alias.pu 'push -u'

这基本上改变了推送的默认行为,因此有意义。

答案 16 :(得分:0)

具有相同错误的不同情况(备份到外部驱动器),问题是我使用克隆设置了远程存储库。如果您最初将远程存储库设置为裸机,则每次都可以使用

cd F:/backups/dir
git init --bare
cd C:/working/dir
git remote add backup F:/backups/dir
git push backup master

答案 17 :(得分:0)

帮助我的事情: 我看到我的目录与 git 之间的连接没有建立 - 所以我又做了: git push -u origin main

答案 18 :(得分:0)

如果您尝试使用新的本地分支进行git push之后不断收到以下git错误消息:

致命:当前分支没有上游分支。

要推送当前分支并将遥控器设置为上游,请使用

git push --set-upstream origin <branchname>

然后的问题是,您尚未将git配置为始终在本地分支上创建新分支。

如果您始终只想在遥控器上创建该新分支以镜像和跟踪本地分支,则永久性解决方法是:

git config --global push.default current

现在您可以git push了,没有任何错误!

https://vancelucas.com/blog/how-to-fix-git-fatal-the-current-branch-has-no-upstream-branch/

答案 19 :(得分:0)

使用

提交代码
git commit -m "first commit"

然后使用

配置您的邮件ID
git config user.email "example@example.com"

这对我有用

答案 20 :(得分:0)

如果您在任何分支机构,都可以使用此:

git push origin head -u

这将自动在遥控器上创建相同名称的新分支。

答案 21 :(得分:0)

1。计算机与您的github相关联。使用SSH。计算机代码,因此您无需提交经过验证的enter image description here

2. git无法管理空文件夹。所以你必须写一个保存在文件中的readme.md。否则你将找不到该文件。

3。您的本地项目没有新项目移动。请

git init

git remote add origin +"githublink"

git add .

git commit -m ""再去一次。

4。然后git pull origin master(密钥)

5. 最后git push origin master(解决所有问题)。

http://my.oschina.net/psuyun/blog/123005参考链接

答案 22 :(得分:0)

如果您尝试将代码直接推送到主分支,请使用命令

git push origin master

它帮助了我。

答案 23 :(得分:0)

对我来说,我正在将更改推送到我没有写访问权的私人仓库中。 执行推或拉操作时,请确保您具有有效的访问权限。

您可以直接通过

进行验证

答案 24 :(得分:0)

我遇到了同样的问题

enter image description here

我解决了以下命令中使用的问题

$ git branch --set-upstream develop origin/develop

,它将在.git文件夹的配置文件中添加一个配置。

enter image description here

答案 25 :(得分:0)

我遇到了同样的问题,原因是我忘记指定分支

git push myorigin feature/23082018_my-feature_eb

答案 26 :(得分:0)

我也遇到了同样的错误。我认为这是因为我克隆它并尝试推回。       $ git push -u origin master 这是正确的命令。试试

计算对象:8,完成。 Delta压缩最多使用2个线程。 压缩对象:100%(4/4),完成。 写入对象:100%(8/8),691字节| 46.00 KiB / s,完成了。 总计8(delta 1),重用0(delta 0) remote:解析增量:100%(1/1),完成。

  • [new branch] master - &gt;主 分支主站设置为从原点跟踪远程分支主站。

    It was successful. Try to create new u branch 
    

答案 27 :(得分:-1)

对我来说,问题出在我分支的名称上:“#name-of-my-branch”,如果没有“#”,就可以正常工作!

答案 28 :(得分:-1)

要解决此问题,在查看git本身的代码时,您需要提供如下命令:

git checkout -b branchname origin/branchname

此处,我们默认设置the upstream branch,因此您不会遇到上述问题。