我试图将我的一个项目推送到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
任何提示?
答案 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 master
或git 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)
答案 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
它奏效了。这样,您将得到提示,输入用户名和密码。 我还生成了令牌,并且粘贴了令牌,从而成功完成了密码。
答案 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"
然后使用
配置您的邮件IDgit 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
(解决所有问题)。
答案 22 :(得分:0)
如果您尝试将代码直接推送到主分支,请使用命令
git push origin master
它帮助了我。
答案 23 :(得分:0)
对我来说,我正在将更改推送到我没有写访问权的私人仓库中。 执行推或拉操作时,请确保您具有有效的访问权限。
您可以直接通过
进行验证答案 24 :(得分:0)
我遇到了同样的问题
我解决了以下命令中使用的问题
$ git branch --set-upstream develop origin/develop
,它将在.git文件夹的配置文件中添加一个配置。
答案 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
,因此您不会遇到上述问题。