【发布时间】:2011-07-23 01:03:30
【问题描述】:
我维护了一个 repo 的分支。
一直在跟踪二进制文件(这是一个 sqlite3 文件)的那个 repo。
每次从该存储库中提取时,由于该二进制文件,我都会遇到合并冲突。
解决这种合并冲突的正确方法是什么?
在 git 中管理二进制文件(比如这个 sqlite3 *.db 文件)的正确方法是什么?
【问题讨论】:
标签: git version-control binary github
我维护了一个 repo 的分支。
一直在跟踪二进制文件(这是一个 sqlite3 文件)的那个 repo。
每次从该存储库中提取时,由于该二进制文件,我都会遇到合并冲突。
解决这种合并冲突的正确方法是什么?
在 git 中管理二进制文件(比如这个 sqlite3 *.db 文件)的正确方法是什么?
【问题讨论】:
标签: git version-control binary github
您可以在当前版本之上定义一个自定义合并驱动程序,指定为always "keep theirs"(复制您正在提取的版本)。
.gitattributes
mysqlite3.db merge=keepTheir
(话虽如此,请记住binaries aren't always best managed with Git,尤其是经常修改它们时)
【讨论】:
.gitattributes 的文件(可能是你项目的顶层),就像使用.gitignore。 $GIT_DIR/info/attributes 仅适用于您的特定克隆库,而不适用于其他库,因为它显然未被跟踪。
man gitattributes.
我发布了一个工具,可以满足您的要求。它使用自定义差异驱动程序,利用 sqlite 项目工具“sqldiff”,将 UUID 作为主键,并保留 sqlite rowid。它仍处于 alpha 阶段,因此非常感谢您的反馈。
【讨论】: