为什么git pull手册页会说;您从不在a<;右侧出现的分支上进行自己的开发;参考规范>;拉上的冒号:行“;?

为什么git pull手册页会说;您从不在a<;右侧出现的分支上进行自己的开发;参考规范>;拉上的冒号:行“;?,git,Git,git pull的主页,在“与抓取相关的选项”下面说 你从来没有对出现在冒号右边的分支进行过自己的开发;它们将由git fetch更新。如果你 打算进行从远程分支B派生的开发,使用Pull:line跟踪它(即Pull:B:remote-B),并使用单独的分支my-B执行您的任务 最重要的是发展。后者由git分支my-B remote-B(或其等效的git checkout-B my-B remote-B)创建。运行git fetch以跟踪 当您在远程分支上看到新内容时,使用git pull将其合

git pull的主页,在“与抓取相关的选项”下面说

你从来没有对出现在冒号右边的分支进行过自己的开发;它们将由git fetch更新。如果你 打算进行从远程分支B派生的开发,使用Pull:line跟踪它(即Pull:B:remote-B),并使用单独的分支my-B执行您的任务 最重要的是发展。后者由git分支my-B remote-B(或其等效的git checkout-B my-B remote-B)创建。运行git fetch以跟踪 当您在远程分支上看到新内容时,使用git pull将其合并到您的开发分支中。遥控-B,当你开机时 我的B分部

我们一直在试用一个工作流,它是:

git fetch origin
git checkout -b un-3437 origin/un-3437
我相信示例中的un-3437在主页评论中是B。因此,我们应该从un-3437分支。然而,这似乎是一个额外的工作很多

其次,忽略上面段落中的第二个分支思想,我们发现,
git status
会说本地分支比远程分支早x提交。我们不明白如果我们刚刚做了git pull,情况会怎样


我们的思维模式似乎是错误的。有没有好的资源来解释所有这些指针?

手册页上说,如果在冒号右侧的“Pull:”配置中显示分支,则不会对其进行开发。它并不是说你不应该在一个名为与冒号左边的东西相同的分支中进行开发

冒号左边是什么并不重要,因为这些引用位于远程服务器上。右侧显示的名称很重要,因为它引用本地存储库中的分支,该分支将通过拉取或提取自动更新(而不是合并!),并且您不希望该引用分支在本地修改,否则可能会丢失(如果您强制更新)或者,您将无法获取远程更改的本地副本(如果不强制更新)。

这是一个良好的开端:

请参见
git pull
,在这里您可以将
git fetch
git merge
组合在一起:


2014年8月更新(2年以上之后)

(2014年5月,Git 2.1 by)从文档中删除该警告:

在Git 1.5之前的旧时代,习惯上“
Git fetch
”使用相同的本地分支名称空间来跟踪远程跟踪分支,并且有必要告诉用户不要签出并提交这些分支

由于现在每个人都使用单独的远程布局,因此没有必要警告检查
的右侧并在此基础上构建的做法——RHS(右侧)通常甚至不是本地分支


您的工作流程是正确的

查看项目根目录下的
.git
目录,检查
config
文件,您会看到如下内容

[remote "origin"]
    url = git@bitbucket.org:something/projectname.git
    fetch = +refs/heads/*:refs/remotes/origin/*
键入
git fetch origin
时会参考这些行

您可以看到,实际上pull/fetch的右侧实际上是包含
remotes/origin
的内容。他们说的是不要编辑远程跟踪分支

通过打字

git checkout -b un-3437 origin/un-3437
您正在创建跟踪“本地存储的远程跟踪分支”的本地分支。当
git status
表示您在X提交中领先或落后时,它将
un-3437
remotes/origin/un-3437

进行比较。注意:自git 2.1(2014年8月)以来,该部分文档不再相关,已被删除。看见