猿问

“ u”到底是做什么的?“ git push -u原始主机”与“ git push原始主机”

尽管我尽了最大的努力去理解git,但我显然还是很害怕使用git。


从kernel.org获得git push:


-u


--set-upstream


对于每个最新的或成功推送的分支,添加上游(跟踪)引用,该引用由无参数的git-pull(1)和其他命令使用。有关更多信息,请参见branch.<name>.mergegit-config(1)。


下面是branch.<name>.merge来自git config:


branch.<name>.merge


与一起定义branch.<name>.remote给定分支的上游分支。它告诉git fetch / git pull合并哪个分支,并且还可能影响git push(请参阅push.default)。在branch中时<name>,它告诉git fetch将默认的refspec标记为要合并到FETCH_HEAD中。该值的处理方式类似于refspec的远程部分,并且必须匹配从所给定的从远程获取的ref "branch.<name>.remote"。git pull(首先调用git fetch)使用合并信息来查找默认分支进行合并。如果没有此选项,则git pull默认会合并获取的第一个refspec。指定多个值以获取章鱼合并。如果您希望设置git pull以便它可以<name>从本地存储库中的另一个分支合并到一起,则可以指向branch.<name>.merge到所需的分支,然后使用特殊设置。(一个时期)branch.<name>.remote。


我使用github成功设置了一个远程存储库,并使用以下命令成功推送了对它的第一次提交:


git push -u origin master

然后,我无意间成功地使用以下命令将第二次提交推送到远程存储库:


git commit -m '[...]'

但是,我错误地认为我将不得不再次推至originfrom master,我跑了:


# note: no -u

git push origin master

那是做什么的?它似乎根本没有任何作用。我“撤消”了git push -u origin master吗?


陪伴而非守候
浏览 1794回答 3
3回答

慕的地10843

git push -u origin master是相同的:git push origin master ; git branch --set-upstream master origin/master如果忘记了,请做最后一个声明-u!或者,您可以强制执行以下操作:git config branch.master.remote origingit config branch.master.merge refs/heads/master如果您让命令为您执行,它将选择您的错误,例如您键入了不存在的分支还是没有键入git remote add,尽管这可能就是您想要的:)。

POPMUISE

简单来说:从技术上讲,该-u标志将跟踪参考添加到要推送到的上游服务器。在这里重要的是,这使您git pull无需提供更多参数即可执行操作。例如,一旦执行a git push -u origin master,便可以稍后调用,git pull而git将知道您的实际意思git pull origin master。否则,您将必须输入整个命令。
随时随地看视频慕课网APP
我要回答