我正在寻找一些关于如何使用Git和GitHub为我的团队正确构建工作流程的建议.
我们是最近的svn转换器,我们应该如何最好地设置我们的日常工作流程.
这里有一点背景:我对命令行感到满意,我的团队很新,但可以使用命令.我们都在与3个环境(开发,分期和生产)合作开展同一个项目.我们是开发人员和设计人员的混合体,因此有些人使用git GUI和一些CLI.
我们在svn中的设置是这样的:
我们有一个开发,分期和生产分支.
当人们对代码有信心时,他们会提交然后将其合并到分段中.
服务器会自行更新,在发布日(每周)我们会做差异并将更改推送到生产服务器.
现在我设置了这些分支,并在服务器运行的情况下完成了这个过程,但实际的工作流程让我感到困惑.
每当有人对文件进行更改时,他们就会创建一个新的分支,提交,合并和删除该分支,这似乎有些过分.根据我的阅读,他们可以在特定的提交(使用哈希)上做到这一点,我有这个权利吗?这是用Git解决问题的可接受方式吗?
任何建议将不胜感激.
您可以从svn verbatim复制工作流程.Git可以做任何事情(但它可以做更多!).但是,尽管使用了CVS,您的工作流程仍可得到改善.
如果你想在你描述的工作流程中保持最小的分支数量(这是你不熟悉git实际上会简化的事情)我建议(而不是一个开发分支)三个每个开发人员分支: devel-john,devel-mary等:
devel-john >--\ \ devel-mary >------> staging ---> production / devel-peter >-/
这很方便:所有开发更改都会被推送到中央存储库(这对于git来说通常是一件好事)而不会发生冲突,并且任何愿意/有义务进行合并的人(例如进入临时分支)都可以随时合并.