在GIT上手动合并

时间:2010-06-14 14:47:10

标签: git merge manual

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

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

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

好吧,当我要求git合并我的分支时,它可以很好地处理代码..但是配置也会被迁移,而且我必须逐个文件地打开,将其更改回原来的状态。

无论如何我可以禁用GIT的自动合并并威胁一切,因为代码冲突要与WinMerge手动合并或以后的东西?代码很简短,真的。因为无论如何我都要编辑它以应用配置......

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

谢谢!

F。

2 个答案:

答案 0 :(得分:5)

  

禁用自动合并

可以通过编写a .gitattributes file中设置的小合并驱动程序来实现 像unset这样的政策可能正是您所寻找的。

Unset
  

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

但另一个有趣的gitattribute驱动程序是clean filer

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

在将“已清理”的内容提交给回购之前,这将自动执行您选择的“干净”脚本。
这样的“clean”脚本可以帮助您自动完成对代码所做的更改,以保留或修改其中嵌入的配置值。

答案 1 :(得分:2)

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

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

这可以帮助您避免合并期间可能出现的错误以及合并所需的时间。