我相信我所描述的情况非常普遍和基本,但我找不到灵魂。
我正在开发一个网络应用程序,我有它的git存储库。有一个应用程序的生产版本,我在主分支机构的代码,以及开放式开发的分支。
我想要实现的目标是:
我想出了一种方法,就是在开发分支上进行这些更改的提交,这些更改将标记为不包含在合并中,但我找不到方法来执行此操作。
我很感激任何建议。
答案 0 :(得分:3)
我建议你创建一些git不跟踪的配置文件。您的代码可以读取此文件以初始化连接设置。由于该文件不受版本控制,因此您可以轻松地针对不同的用例进行修改,包括生产与开发。
答案 1 :(得分:2)
最简单的方法是:
为此,您需要在子模块库中注册(.gitattributes
declaration) content filter driver 。
(图片来自" Customizing Git - Git Attributes",来自" Pro Git book")
与模板文件关联的smudge
脚本将通过在外部查找实际值来生成(自动在git chekcout
)属性文件。
生成的实际属性文件仍然被忽略(.gitignore
)。
请参阅" git smudge/clean filter between branches"。
中的完整示例答案 2 :(得分:1)
您可以使用.gitignore
忽略您不希望GIT跟踪的文件,请在此处详细了解https://help.github.com/articles/ignoring-files/。
但这不会解决您的问题,因为在您添加开发阶段特定文件后,您也无法跟踪它们到您的开发分支。
它是你提到的非常常见的场景,通常我们为每个阶段创建一个不同的文件,即 dev,qa,stage,prod ,它保存特定于舞台的值。
例如: -
dev.properties :-
dev server details
qa.properties :-
qa server details
prod.properties :-
prod server details
然后你的代码根据你选择的阶段读取这些属性文件,即dev,qa,prod
答案 3 :(得分:0)
在对dev进行更改之前。分支,在进行更改之前检出该分支然后提交。