我遇到了一个问题,分支合并失败,因为Crashlytics二进制文件正在更改。我在gitignore中添加了Crashlytics,但是现在如果我再签出分支,框架就不会出现了。
有没有办法处理合并冲突,或者告诉git忽略对文件的更改,但保留文件本身?
发布于 2015-06-04 21:12:13
如果你想把文件放在一个新的克隆中,或者在清理了一个git仓库之后,它需要被git跟踪。
二进制文件不适合合并。从你的问题中,听起来好像没有什么要合并的,但最终的决定就是保留哪个文件。您可以做的一件事是通过.gitattributes和.git/config设置为这些二进制文件定义自定义自动合并行为:
将以下内容添加到您的.gitattributes中(或者在git存储库的根目录下创建一个新文件)
path/to/file merge=nomerge并将以下内容放入git配置文件(.git/config或~/.gitconfig)
[merge "nomerge"]
name = keep current version
driver = true这将指示git忽略冲突,并保留您要合并到的分支中的文件。driver = true指定用于合并的外部程序。在这种情况下,程序是true,它应该可以在任何类unix系统上使用,并且不会成功执行任何操作。如果您需要更智能的东西,请参阅定义自定义合并驱动程序的the gitattributes manpage部分,了解如何添加真正的自定义逻辑。On可以做非常复杂的事情,比如总是保留文件的较高版本,例如,如果文件中有任何版本指示器的话。
您应该将.gitattributes文件git add到存储库。实际的合并驱动程序定义不能以一种新的克隆自动获取它的方式存储。因此,您需要将其手动添加到每个克隆中,或者添加到您需要它的每台计算机上的每用户配置中。
https://stackoverflow.com/questions/24533258
复制相似问题