为什么不"git flow feature pull"轨道?

Oph*_*erV 17 git git-flow

让我们说我已经创建了一个新功能 git flow feature start FEATURENAME

然后发布它 git flow feature publish FEATURENAME

现在,我的同事希望与我合作完成此功能,所以他确实如此

git flow feature pull FEATURENAME

这将根据远程仓库中的功能分支在其本地仓库上创建一个新分支.但是,这并不会将其本地功能分支设置为跟踪远程功能分支,因此现在他必须手动跟踪此分支.

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

什么是git flow feature pull和之间的工作流程差异git flow feature track.

在哪些情况下你会使用哪些?

nao*_*omi 15

听起来像你正在使用git flow feature pull,你应该在哪里使用git flow feature track,因为这确实创建了一个跟踪遥控器的本地分支.

我真的不能想到为什么我会用git flow feature pull.它创建了一个没有跟踪设置的本地分支,我不知道为什么它会有用!它的命名也很糟糕,因为拉动应该涉及合并,而事实并非如此.

  • 拥有`git flow功能[拉,跟踪,结账]这是非常令人困惑的. (3认同)

Von*_*onC 9

此答案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的将自动标记拉入请求为闭合/合并时出现这种情况)

这留下了关闭该分支的问题:

曾经运行的人git flow feature finish module_1将会删除其本地功能分支的奢侈品,但是如果他们想要的话,任何检查分支的人都必须手动执行此操作.

我建议一个git fetch --prune,特别是从Git 1.8.5开始,你可以在你的配置中设置"修剪"步骤:如果在服务器端删除你的功能分支(由其他人制作git flow feature finish),简单的git fetch将删除你的功能分支


gitflow功能的轨道,如果AVH版只是检出和跟踪分支,那就是确保地方分支成为局部跟踪分支,与上游分支关联到它(远程跟踪分支).
也就是说,它设置branch.<name>.remotebranch.<name>.merge.

如果您执行git flow feature pull(对于新的本地功能分支),但实际上意味着git flow feature track,您需要做的就是使现有分支跟踪上游分支:

git branch -u origin/feature
Run Code Online (Sandbox Code Playgroud)

通常:

  • 开始git flow feature track,
  • 然后你保持你的本地功能分支最新 git flow feature pull
  • 你在功能分支之间切换 git flow feature checkout

如" 入门 - Git-Flow "中所述:

git flow feature pull
Run Code Online (Sandbox Code Playgroud)

当多个人一起处理某个功能时,就会完成此操作.
如果要对远程功能分支执行如下操作,则应使用此命令,如下所示:

git flow feature pull [alias] [featureName]
Run Code Online (Sandbox Code Playgroud)

通过使用此命令,您将获得由团队成员推送的源代码,并且他们的更改将自动合并到您的本地分支中.
如果有冲突,你将是不幸或幸运的人来解决这些冲突.