2012-01-24 29 views
2

我正在寻找一种方法来防止git中的某些文件逐行合并。在我的项目中,我有几个包含其他项目生成的文件的目录。这些文件需要成为该存储库的一部分,但不能在此处进行编辑。也就是说,任何替换都已完成,并且不应尝试部分合并/解析。我可以让git不合并文件,但只是复制新文件

有什么办法可以实现这个目标吗?

+0

你试过看子模块吗? – Sedrik

+0

我不确定那是我想要的。这些文件实际上并不是一个很好的模块,它们更像是一个成品,而不是实际的源代码。另外,任何在项目上工作的人都需要这些文件(它不是可选的)。 –

回答

1

我相信你应该使用git attributes标记文件为二进制文件,不适合合并。根据你给的属性,你可以让git避免尝试合并二进制类型(例如:* .dat binary)。您可能还想尝试“我们的”和“他们的”合并策略。自己没有这样做,我不确定这些影响,但我认为这是您应该关注的领域。

+0

我会尝试将它们标记为二进制。 –

2

您可以创建一个.gitattributes文件中的项目(或单个文件中所涉及的目录)的根目录如下:

path/to/my/file merge=theirs 

或多个文件匹配模式:

path/to/dir/*.ext merge=theirs 

这将告诉Git通过获取传入的版本来解决任何合并冲突。

+0

有什么方法可以检查日期吗?采用最新的版本会很好。 –

+0

尽我所知,您需要编写您自己的合并驱动程序(请参阅[gitattributes手册页](http://linux.die.net/man/5/gitattributes),位于“Definining一个自定义合并驱动程序“),但即使如此,我不确定您是否有权访问提交时间戳。 – FatBusinessman

相关问题