Git pull - 使用 -u 选项的默认远程和分支 - 适用于推送但不适用于拉取

Ale*_*lls 5 git github

我使用的是 Git 版本 2.6.3,并且在运行时收到此消息

git pull
Run Code Online (Sandbox Code Playgroud)

“当前分行没有跟踪信息。”

我的印象是 git 将默认为 origin 和“简单”配置下具有相同名称的分支。

经过一些麻烦,我发现配置它的最简单方法是使用 -u 选项,如下所示:

$ git push -u origin master
Run Code Online (Sandbox Code Playgroud)

然后它会说:

“分支主机设置为从源跟踪远程分支主机。”

所以我的问题是,为什么我们不能在 git pull 中使用 -u 选项?

$ git pull -u origin master
Run Code Online (Sandbox Code Playgroud)

-u选项在拉时无法识别,只有推

我的问题是 - 有充分的理由吗?

小智 5

您可以使用此命令设置当前分支的上游 $ git branch --set-upstream-to=origin/master

这样,在不实际使用pushorpull命令的情况下,在拉取和推送时,默认情况下将上游分支设置为 master 。

现在尝试git pull,它应该开始从您的存储库中收集所有内容,然后它会说它是Already up-to-date

如果您有任何其他问题,我将很乐意为您提供帮助。


小智 4

-u只是使用的快捷方式--set-upstream。该标志将导致您的本地分支从远程上游跟踪您的远程分支。您只需执行此操作一次,最好是在开始时使用git push -u origin <branch_name>.

这意味着当您使用 , 时git pullgit fetchgit push应该假设您的本地分支和正在跟踪的远程分支将同步。

如果你想了解更多信息,请阅读这里:Git Pull 和 Git Push 之间的不对称