当我试图推动时,为什么必须设置上游

时间:2014-07-28 18:58:00

标签: git

我是git的新手,当我在工作时,我会首先从主分支分支然后开始工作,完成工作然后添加并提交,在所有这些之后我试图推动但有时我得到以下消息(有时不是):

fatal: The current branch ql/live+my_branch has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin ql/live+my_branch

我知道问题将通过上面的命令解决,但我想当我从主分支分支然后主分支成为当前分支的上游分支时,为什么我必须再次设置它?提前谢谢!

1 个答案:

答案 0 :(得分:1)

我可能误解了你的问题,但我相信这可能会回答你。 您的本地仓库不一定反映远程仓库的仓库。远程仓库默认具有主分支,但是您创建的本地分支不会在远程仓库中跟踪,除非您告诉它。因此,如果您正在使用本地分支,则必须设置上游,以便在推送分支时也将远程创建。如果你没有设置上游,那么git会将你的提交推送到远程主服务器上,就像你在master上完成了工作一样。

如果您倾向于在本地分支上工作,合并到master然后推送,您可以考虑使用no fast forward(git merge my_branch --no-ff)以便在推送master时远程保留提交历史记录。