Git报错如下:
$ git push
fatal: The current branch dev has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin dev
To have this happen automatically for branches without a tracking
upstream, see 'push.autoSetupRemote' in 'git help config'.
原因
当前分支没有设置远程跟踪分支。在 Git 中,远程跟踪分支是指与远程仓库对应的本地分支。没有设置远程跟踪分支会导致 Git 不知道将本地分支推送到哪个远程分支,一般这个问题会在新的分支第一次推送时触发。
解决办法一
使用 git push --set-upstream origin <branch-name>
命令。这个命令将会推送当前分支到远程仓库,并且设置远程分支为该分支的追踪分支。在命令中,将 <branch-name>
替换为你的分支名称。
例如,在我的情况下,可以运行以下命令来解决问题:
git push --set-upstream origin dev
这样,你就成功地将当前分支与远程仓库的 dev 分支进行了关联,并且下次推送时就不需要再指定远程分支了。
这里的branch-name
就是你的分支名,如果没有创建其他的分支的话,这branch-name
就是master
,所有你可以使用以下命令来尝试:
git push --set-upstream origin master
解决办法二
这个问题其实就是在新的分支第一次提交的时候没有加入-u
参数导致的,因为Git远程仓库没有这个分支,你推送的时候系统无法判别这个新的分支应该加在何处,于是报错,所以,新的分支如果当时第一次提交,务必使用-u
参数,如果忘记了,则需要使用如下命令进行补救,然后再推送
git branch -u orgin/<new-branch-name>
git push
当然,如果第一次就是用如下命令进行推送的,就不会出现报错:
git push -u origin <new-branch-name>