让我们说我已经创建了一个新功能 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.它创建了一个没有跟踪设置的本地分支,我不知道为什么它会有用!它的命名也很糟糕,因为拉动应该涉及合并,而事实并非如此.
此答案由brainimus示出了特征分支的协作方面,使用这有利于代码审查和讨论部分GitHub的拉入请求方面:
- 创建功能分支:
git flow feature start module_1- 代码在功能分支上更新
- 当提交更改时,它们会被推送到GitHub(如果首选,则推送到最后)
- 完成该功能后,将在GitHub比较
develop和功能分支中打开一个拉取请求module_1- 团队审核拉取请求并发表评论
- 拉取请求的任何更改都将发送到功能分支
- 将所有更改合并到功能分支后,功能分支即完成:
git flow feature finish module_1- 该
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>.remote和branch.<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 pullgit 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)
通过使用此命令,您将获得由团队成员推送的源代码,并且他们的更改将自动合并到您的本地分支中.
如果有冲突,你将是不幸或幸运的人来解决这些冲突.