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

Git 当我试图推动时,为什么我必须设置上游,git,Git,我是git新手,在工作时,我会首先从主分支分支分支,然后开始工作,完成工作后,再添加和提交,在所有这些之后,我尝试推送,但有时我会收到以下消息(有时不会): 我知道问题将通过上述命令解决,但我在想,当我从主分支分支时,主分支将成为当前分支的上游分支,为什么我必须重新设置它?提前谢谢 我可能误解了你的问题,但我相信这可能会回答你。 您的本地回购不一定反映您的远程回购。远程回购在默认情况下有一个主分支,但是,除非您告诉它,否则您创建的用于执行工作的本地分支不会在远程回购中被跟踪。因此,如果您在本地分

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


我知道问题将通过上述命令解决,但我在想,当我从主分支分支时,主分支将成为当前分支的上游分支,为什么我必须重新设置它?提前谢谢

我可能误解了你的问题,但我相信这可能会回答你。 您的本地回购不一定反映您的远程回购。远程回购在默认情况下有一个主分支,但是,除非您告诉它,否则您创建的用于执行工作的本地分支不会在远程回购中被跟踪。因此,如果您在本地分支上工作,则必须设置上游,以便在推送分支时,也可以远程创建分支。如果您不设置上游,那么git将把您的提交推送到远程主机上,就像您在主机上完成了工作一样


如果您倾向于在本地分支上工作,合并到主控器中,然后推送,则可以考虑使用无快进(Git合并MySy-Fun-FF),以便在推送主机时远程保留提交历史。

可以帮助。注意,通过“上游分支”,Git引用,而不是您的本地代码<主/ <代码>分支,但对于您试图推送到的远程回购协议上的分支,也可以这样做。顺便说一句,这是谷歌搜索git upstream branch的第一个结果,因此我被迫将其标记为重复。您完全理解我的问题,谢谢您的解释。我原以为上游分支是在从主分支断开时由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