我遇到了分支合并失败的问题,因为 Crashlytics 二进制文件正在更改。我在 gitignore 中添加了 Crashlytics,但现在如果我不再签出分支,框架就不会出现。
有没有办法处理合并冲突或告诉 git 忽略对文件的更改,但保留文件本身?
我遇到了分支合并失败的问题,因为 Crashlytics 二进制文件正在更改。我在 gitignore 中添加了 Crashlytics,但现在如果我不再签出分支,框架就不会出现。
有没有办法处理合并冲突或告诉 git 忽略对文件的更改,但保留文件本身?
如果您希望文件在一个新的克隆中,或者在清理一个 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 的系统上使用,并且没有成功执行任何操作。如果您需要更智能的东西,请参阅定义自定义合并驱动程序的 gitattributes 手册页 部分,了解如何添加真正的自定义逻辑。例如,如果文件中有任何版本指示符,On 可以做非常复杂的事情,例如始终保持文件的较高版本。
您应该git add
将 .gitattributes 文件添加到存储库。实际的合并驱动程序定义不能以新克隆自动开箱即用的方式存储。因此,您需要将其手动添加到每个克隆或您需要它的每台计算机上的每个用户配置中。