可能重复:
Locking binary files using git version control system在Git中,有没有办法将文件标记为“纯”?
我犯它永远不应为合并文件,但覆盖(或许还有一个警告)当其他人拉开。有没有办法完成这个?
可能重复:
Locking binary files using git version control system在Git中,有没有办法将文件标记为“纯”?
我犯它永远不应为合并文件,但覆盖(或许还有一个警告)当其他人拉开。有没有办法完成这个?
这是有点不清楚你的实际情况是什么。你应该问自己的第一个问题是文件是否真的需要被跟踪 - 不可合并的文件通常是派生文件,正如你在评论中所建议的那样,因此不需要(也不应该)被跟踪。
如果你真的需要跟踪它,它是一个二进制文件? Git不会尝试合并二进制文件 - 它们总是显示为合并冲突。 Git很擅长检测二进制文件,所以在这种情况下,你可能是安全的。如果它不是二进制文件,那么你仍然强迫Git适当地处理它。在.gitattributes
文件,添加类似:
path/to/file merge=binary
这将引导其把它当作一个二进制文件进行合并的目的。你也可以,如果你想,定义一个自定义的合并驱动程序。使用merge=my_merge_driver
在gitattributes文件,然后在你的gitconfig添加类似:
[merge "my_merge_driver"]
name = descriptive name
driver = my_script %O %A %B
的三个参数为脚本是我们共同的祖先版本(O为原件),当前分支的版本(A)和其他分支的版本(%B) - 它们是临时文件,并且合并驱动程序应该执行合并并将结果保留在%A中。有关详细信息,请参阅man gitattributes
。
它以什么方式“纯”?它可能是派生文件或二进制文件? – cmbuckley 2012-02-11 23:09:20
我想不出另一个字。也许是不可说的?是的,为了我们的目的,让我们说它是一个派生文件。 – 2012-02-11 23:22:35
这听起来很像'我需要Git锁'的论点,虽然措辞不同。你要求的是违背DVCS的精神。 – Perception 2012-02-11 23:24:11