7

我使用专有的脚本语言进行开发,代码非常恢复,其中大多数配置都包含在代码本身中。

明显的问题是测试和生产环境之间代码本身的差异,而这正是我试图用 GIT 管理的。

由于我的测试环境非常不稳定,我想我可以在 GIT 中为它创建一个分支,同时进行更改(并在其中保留带有测试配置的代码),并且在代码被接受后,我会将其合并到生产中。

好吧,当我要求 git 合并我的分支时,它在代码方面做得很好。但是配置也被迁移了,而且我必须逐个文件打开,将其更改回原来的样子。

无论如何,我是否可以禁用 GIT 的自动合并并将所有内容作为代码冲突威胁到手动与 WinMerge 合并或以后的东西?代码很短,真的。而且由于无论如何我都必须对其进行编辑以应用配置...

ps.:请注意,我不是在问如何在 git 上配置 WinMerge。我有这些工具工作。我的问题是如何始终在分支之间执行手动合并。

谢谢!

F。

4

2 回答 2

5

禁用自动合并

这可以通过编写一个设置在文件中.gitattributes小型合并驱动程序来实现。
类似的政策unset可能是您正在寻找的。

Unset

取当前分支的版本作为暂定合并结果,并声明合并有冲突。这适用于没有明确定义的合并语义的二进制文件。

但是另一个有趣的 gitattribute 驱动程序是一个干净的文件管理器

http://git-scm.com/figures/18333fig0703-tn.png

这将在将“清理”内容提交到存储库之前自动执行您选择的“清理”脚本。
这样的“ clean”脚本可以帮助您自动化您必须对代码进行的更改,以保留或修改嵌入其中的配置值。

于 2010-06-14T16:31:42.260 回答
2

您说“大多数配置都包含在代码本身中”,但希望所有配置都隔离在特定于配置的文件中。如果是这种情况,您可以将配置代码的测试和发布用例保存在同一个分支中。然后,您可以使用命令行开关来使用测试配置而不是普通配置。

如果您的程序可以从命令行(或环境变量、注册表项、文本文件或其他)读取配置选择,那么您根本不需要合并。程序可以在命令行开关不存在时忽略测试配置文件,当命令行开关存在时忽略发布配置。

这可以使您避免在合并期间可能出现的错误以及进行合并所需的时间。

于 2010-06-14T15:23:10.427 回答