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

我试图把我的一个项目推到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

有提示吗?

995369 次浏览

你修复了推送,但是,独立于那个推送问题(我在“为什么我需要显式地推一个新分支?": git push -u origin mastergit push -u origin --all中解释了),你现在需要解决身份验证问题。

这取决于你的url (ssh为` git@github.com/yourRepo,或https为` https://github.com/You/YourRepo)

对于https url:

如果您的帐户受双因素身份验证保护,您的常规密码将不起作用(https url), 正如这里所解释的 或者在这里

同样的问题,如果你的密码包含特殊字符(如这个答案)

如果https不起作用(因为你不想生成一个辅助密钥,一个PAT:个人访问令牌),那么你可以切换到ssh, 正如我在这里展示的


正如注释中的qwerty所指出的,你可以在远程上自动创建同名的分支:

git push -u origin head

为什么?

  • HEAD(查看你的.git\HEAD文件)有当前签出分支的refspec(例如:ref: refs/heads/master)
  • 默认的推动政策简单< a href = " https://stackoverflow.com/a/6547682/6309 " > < / >

由于此推送使用的refpec是head:(没有目的地),缺少:<dst>意味着更新与<src> (head,这是一个分支)相同的ref。

如果头部脱落,这将不起作用。


或者你可以使用Git 2.37 (Q3 2022)和新的全局选项push.autoSetupRemote:

git config --global push.autoSetupRemote true
git push

你也可以使用下面的命令:

git push -u origin master

这将在远程repo中创建(-u)另一个分支。一旦使用ssh完成了身份验证。

显然,当你第一次推时忘记--all参数时,你也会得到这个错误消息。我写了

git push -u origin

是谁给出了这个错误,它应该是

git push -u origin --all

哦,我多么喜欢这些复制粘贴错误……

一台计算机和你的github相关联。使用SSH。计算机代码,所以你不需要提交经过验证的在这里输入图像描述

2. git不能管理空文件夹。所以你必须写一份自述书。Md保存在一个文件中。否则您将找不到该文件。

3.你的本地项目不是新的项目。请

git init

git remote add origin +"githublink"

git add .

git commit -m ""再来一次。

4.然后git pull origin master(键)

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

__abc0参考链接

首先使用git pull origin your_branch_name 然后use git push origin your_branch_name < / p >

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

git remote add origin url-to-your-repo

实际使用说明

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

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

如果在任何未来的推送之后显示任何关于upstream的致命错误,那么只需运行:

git push --set-upstream origin master

为了解决这个问题,在检查git本身的代码时,你需要给出如下命令:

git checkout -b branchname origin/branchname

在这里,默认情况下我们设置的是the upstream branch,所以你不会遇到上面提到的问题。

如果您试图将代码直接推到主分支,则使用命令

git push origin master

这对我有帮助。

请尝试这个场景

git push -f --set-upstream origin master

我也得到同样的错误。我想这是因为我克隆了它,并试图反击。 $ git push -u origin master 这是正确的命令。试试< / p >

计数对象:8,完成。 Delta压缩使用最多2个线程。 压缩对象:100%(4/4),完成。 写入对象:100%(8/8),691字节| 46.00 KiB/s,完成。 总共8(1),重用0 (0) remote: Resolving deltas: 100% (1/1), done.

  • [新分支]master -> master 分支主机设置从原点跟踪远程分支主机

    It was successful. Try to create new u branch
    

我犯了一个简单的错误,忘记了承诺:

git commit -m "first commit"

然后git push origin master工作。

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

git push myorigin feature/23082018_my-feature_eb
好吧,我在上传时也遇到了同样的麻烦,我解决了它 做着上面说的同样的事情: 早些时候,我试图通过https将终端推送到linux中的存储库 像< / p >
git push https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git

但没有任何结果,因此我更深入地尝试:

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

它起作用了。这样就会提示您输入用户名和密码。 我还生成一个令牌,而不是密码,我粘贴令牌,因此,成功完成

  1. 要生成一个令牌,请转到您的Github帐户,在开发者设置中,然后创建另一个令牌。
  2. 获取后,复制
  3. . .

在一个非常简单的方面,一旦你有了其他分支,你就不能只用于推一个分支

git push

但是您现在需要指定分支,即使您已经签出了想要推送的分支,所以

git push origin <feature_branch>

master分支可以在哪里

我也有同样的问题

enter image description here

我用下面的命令解决了它

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

它会在。git文件夹的配置文件中添加一个配置。

enter image description here

对我来说,问题来自我的分支名称:“#name-of-my-branch”,没有“#”也可以!

对于我来说,我正在将更改推到一个我没有写访问权的私有回购。

.在执行推或拉操作时,请确保您有有效的访问权限

您可以直接验证通过

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

我通过删除文件夹、重新克隆并重新进行更改来解决这个问题。

如果你定义动作git push,如果命令行上没有给出refspec,远程中没有配置refspec,并且命令行上给出的任何选项都没有暗示refspec,它就会执行该动作。

尽管去做吧:

git config --global push.default current

然后

git push

如果你在任何分支上,你可以使用这个:

git push origin head -u

这将自动在远程上创建同名的新分支。

使用以下命令提交代码

git commit -m "first commit"

然后配置您的邮件id使用

git config user.email "example@example.com"

这是我的工作

如果你在尝试一个新的本地分支的git推送后经常得到以下git错误消息:

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

要推动当前分支并将远程设置为上游,请使用

git push --set-upstream origin <branchname>

然后,问题是您没有配置git总是从本地分支创建远程的新分支。

如果你总是想在远程上创建一个新的分支来镜像和跟踪你的本地分支,永久的修复方法是:

git config --global push.default current

现在你可以毫无错误地推git了!

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

帮助我的东西: 我发现我的目录和git之间的连接没有建立 所以我又做了一次: git push -u origin main < / p >

不同的情况下,相同的错误(备份到外部驱动器),问题是我设置了远程回购与克隆。如果你一开始就用bare设置远程回购,每次都有效

cd F:/backups/dir
git init --bare
cd C:/working/dir
git remote add backup F:/backups/dir
git push backup master
在我看来,这只是一个错误的默认git行为。 回顾了git支持的所有选项,也回顾了相关的git代码:

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

我建议最好的解决方案是重写push default命令:

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

这基本上改变了推送的默认行为,所以这是有意义的。

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

git push -u origin 'your branch name'

这段代码将在远程存储库中创建您的分支,并将它…

在推入分支之前,请先使用此命令

git config --global push.default current

执行完以上命令后使用git push命令。

遇到了同样的问题,但不是来自主分支。 我尝试通过使用$ 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更容易远程跟踪分支;有一天,当处理有几个分支的项目时,这可能会派上用场。

在我的情况下,我有一个本地分支称为Master,而Master是在Github上。 我只是把我的Master改名为->主和结帐到主。 然后按一下。

我得到这个错误,因为我试图在没有write访问的情况下推代码,我只有read访问 在Bitbucket中,当你打开你的repo (Repository details)时,你可以在右侧检查访问权限:

这是更好的,克隆这个回购新的。也许它只是迷失了方向。