我有一个系统的5个分支 - 让我们称他们为主人,伦敦,伯明翰,曼彻斯特和演示.它们仅在配置文件中有所不同,每个都有自己的一组图形文件.
当我进行一些开发时,我从master创建一个临时分支,在该功能之后调用,并对其进行处理.当准备合并我checkout master和git merge功能带来我的工作.这似乎工作得很好.
现在我需要将其更改到其他分支中,而不会丢失它们之间的差异.我怎样才能做到这一点?伯明翰获得伦敦的图形以及配置文件中存在冲突,我一直没有遇到任何问题.
当分支最终正确时,我将其推送到一个软件仓库,并将每个分支拉到一个Linux盒子进行最终测试,从那里发布到生产中使用rsync(设置为忽略.git存储库本身).这个阶段也可以正常工作.
我是目前唯一的开发人员,但我需要在邀请帮助之前让流程稳固:)
Von*_*onC 11
两种技术可以帮助:
因此,当您开发新功能时,您需要为其他站点所做的一切就是确保它们各自的repo引用最新的公共代码库作为子模块.只是一个git submodule update做,你就完成了.
另外,使用模板配置文件,您存储的只是配置值,而不是实际的配置文件本身(它们是生成的).
这允许您对每个站点进行一些微调,而不必"忽略"本地修改.
总而言之:尝试模块化您的应用程序,而不是尝试在一个仓库中管理所有方面(公共代码,配置文件,特殊文件......)(包含所有涉及的合并和rebase).
git rebase 是你的朋友。
像往常一样在master分支中进行更改。完成后,签出其他分支机构之一(例如,伯明翰)并运行
git rebase master。git将在当前提交和伯明翰所基于的提交之间提取您在master上所做的更改。网上发布的命令上有不错的文档。这是我发现的两个
http://darwinweb.net/articles/86
http://www.eecs.harvard.edu/~cduan/technical/git/git-5.shtml
还有很多。您会发现很多人都在谈论重新安置的危险。请注意这些问题,但我怀疑您的情况所带来的收益远远超过了风险;知道危险才是成功的一半。