Brainimus的这个回答说明了功能分支的协作方面,使用 GitHub 拉取请求方面,这有助于代码审查和讨论部分:
- 创建一个功能分支:
git flow feature start module_1
- 代码在功能分支上更新
- 提交更改后,它们会被推送到 GitHub(如果愿意,也可以在最后推送一次)
- 功能完成后,会在 GitHub 中打开拉取请求,比较
develop
功能分支module_1
- 团队审查拉取请求并发表评论
- 拉取请求中的任何更改都会对功能分支进行
- 一旦所有更改都合并到特性分支上,特性分支就完成了:
git flow feature finish module_1
- 分支被推送到 GitHub(发生这种情况时,
develop
GitHub 会自动将拉取请求标记为关闭/合并)
这留下了关闭该分支的问题:
谁曾经运行过git flow feature finish module_1
他们的本地功能分支将被删除,但其他任何签出分支的人都必须手动执行此操作
我会推荐一个git fetch --prune
,特别是从 Git 1.8.5 开始,你可以在你的配置中设置“修剪”步骤:一个简单的 git fetch 将删除你的功能分支,如果它已在服务器端被删除(由其他人制作git flow feature finish
)
如果AVH 版本只是签出和跟踪分支,则gitflow 功能会跟踪,即确保本地分支成为本地跟踪分支,并与上游分支(远程跟踪分支)相关联。
也就是说,它设置和。
branch.<name>.remote
branch.<name>.merge
如果你做了一个git flow feature pull
(对于一个新的本地特性分支),但实际上意味着git flow feature track
,你需要做的就是让你现有的分支跟踪上游分支:
git branch -u origin/feature
一般来说:
- 你从,
git flow feature track
_
- 然后你保持你的本地特性分支是最新的
git flow feature pull
- 您在功能分支之间切换
git flow feature checkout
正如“入门 - Git-Flow ”中提到的:
git flow feature pull
这将在多人一起处理一项功能时完成。
如果您想拉动远程功能分支,您应该使用此命令,如下所示:
git flow feature pull [alias] [featureName]
使用该命令,您将获得队友推送的源代码,他们的更改将自动合并到您的本地分支中。
如果有冲突,你将是解决这些冲突的不幸或幸运的人。