推荐的测试和生产实例的git工作流程

Bre*_*ugh 5 git deployment workflow git-rebase

虽然我已经使用git一段时间了,但我仍然认为自己是n00b,所以请不要对我太苛刻.

我将"公司"主机系统维护为两个不相同的副本.我们称之为测试和生产.大型机没有任何我(或许可能是你们中的任何一个)会认为是版本控制系统的东西,所以我在桌面上使用git来为我提供版本控制.以下是我当前工作流程的主要功能:

  • 桌面和大型机与FTP"同步".最后,无论是在大型机还是PC上编写的所有开发工作都会在git分支机构的PC上完成.

  • 我无法访问任何类型的"现代"部署技术,如Hudson

  • 我有两个主要的分支,称为Test和Prod.由于产品的(继承)结构,Test和Prod实例之间的代码存在许多差异.例如,所有显示面板都需要清楚地识别这是Test还是Prod,但是没有办法在单点配置它.

  • 我通常为特定的开发子项目创建其他分支.

  • 一般开发在Test分支上完成,具有多个提交.准备好后,将这些樱桃挑选到Prod上,标记有更改编号,并在批准后上传.

  • 幸运的是,紧急工作是在Prod分支上完成的,并且是挑选出来的.

  • 偶尔采摘樱桃需要手动合并.

我想改进这个工作流程.目前,我的存储库在两个分支上充满了并行相同的更改.

我想我更喜欢这样做(对于Test - > Prod):

  • 一旦开发准备就绪,在Prod的HEAD创建一个新的分支

  • 将这组开发更改折叠为新分支上的单个更改

  • 将这个新分支合并到Prod.请记住,他们的共同祖先是使测试与Prod不同的变化之前

它似乎git rebase -i可以完成这项工作,但我必须承认这git rebase是我的脑桥asinorum,不知怎的,我已经设法弄乱了我的树多次.

所以我的问题是:

  1. 请在产品的限制范围内建议更好的方法.

  2. 如果我的首选方法可行,有人可以建议正确的参数git rebase -i吗?

Von*_*onC 7

关于Test和Prod之间的差异,检查您是否可以检测您是否在某个环境中.

对于具有特定于平台的内容的文件,这将允许在结账时使用过滤器驱动程序通过涂抹脚本进行修改.

过滤驱动程序

这样,您就不必维护分支只是为了分隔几乎相同的代码集.