为什么"git flow feature pull"跟踪?



假设我用git flow feature start FEATURENAME 创建了一个新功能

然后用git flow feature publish FEATURENAME 发布

现在我的同事想和我合作开发这个功能,所以他做了

git flow feature pull FEATURENAME

这在他的本地回购上创建了一个新的分支,基于远程回购中的功能分支。然而,这并没有将他的本地功能分支设置为跟踪远程功能分支,所以现在他必须手动跟踪这个分支。

这一额外步骤背后的原因是什么?为什么不将feature pull命令也设置为跟踪

git flow feature pullgit flow feature track的工作流程有何不同。

在哪种情况下,你会分别使用这些?

听起来像是在使用git flow feature pull,而应该使用git flow feature track,因为这确实创建了一个跟踪远程的本地分支。

我真的想不出为什么我会使用git flow feature pull。它创建了一个没有跟踪设置的本地分支,我不知道为什么这会有用!它的名称也很糟糕,因为pull应该涉及合并,而这并没有。

brainimus的回答说明了功能分支的协作方面,使用GitHub拉取请求方面,这有助于代码审查和讨论部分:

  1. 创建要素分支:git flow feature start module_1
  2. 代码在功能分支上更新
  3. 当提交更改时,它们会被推送到GitHub(如果愿意,也可以在最后推一次)
  4. 当功能完成时,在GitHub中打开一个拉取请求,比较develop和功能分支module_1
  5. 团队审查撤回请求并提出意见
  6. 拉取请求中的任何更改都将对功能分支进行更改
  7. 一旦所有更改都包含在特征分支上,特征分支就完成了:git flow feature finish module_1
  8. develop分支被推送到GitHub(当这种情况发生时,GitHub会自动将pull请求标记为关闭/合并)

不过,这就留下了关闭该分支机构的问题:

任何运行过git flow feature finish module_1的人都可以奢侈地删除他们的本地功能分支,但其他使用签出分支的人如果想,则必须手动执行此操作

我建议使用git fetch --prune,尤其是在Git1.8.5之后,您可以在配置中设置"修剪"步骤:如果您的功能分支在服务器端被删除(由其他人制作git flow feature finish),则简单的Git提取将删除它


gitflow功能跟踪AVH版本是否只是签出并跟踪分支,即确保本地分支成为本地跟踪分支,并与上游分支(远程跟踪分支)关联。
即设置branch.<name>.remotebranch.<name>.merge

如果你做了一个git flow feature pull(针对一个新的本地功能分支),但实际上是git flow feature track,那么你所需要做的就是让你现有的分支跟踪上游的分支:

git branch -u origin/feature

一般情况:

  • 使用CCD_ 22启动
  • 然后使用git flow feature pull保持本地功能分支的最新状态
  • 使用git flow feature checkout在功能分支之间切换

正如"入门-Git流程"中提到的:

git flow feature pull

当多个人一起使用某个功能时,将执行此操作
如果您想按如下方式拉动远程功能分支,则应使用此命令:

git flow feature pull [alias] [featureName]

使用此命令,您将获得队友推送的源代码,他们的更改将自动合并到您的本地分支
如果发生冲突,你将是不幸或幸运的一个来解决这些冲突。

最新更新