git - 告诉 git 不要 merge 二进制文件而是选择

标签 git merge binaryfiles git-merge

当二进制文件、swfs、jar 和 flvs 在本地更改时,我尝试 pull 入更改,git 尝试 merge 它们并报告冲突。

然后,我分支到一个临时分支,提交本地更改的二进制文件,并在 pull 后使用递归策略将它们 merge 回来。 -- 工作量太大。

有没有办法告诉 git,不要尝试 merge 二进制文件并询问我使用这些版本中的哪一个。

最佳答案

您可以在 .gitattributes 文件中设置 merge 驱动器(仅针对给定的子树,仅针对某些文件类型)

参见 this question例如(或 this one )。

# choose the name of the merge driver to be use for all jar files
echo *.jar merge=keepTheir > dirWithJarFiles\.gitattributes

在 Git 存储库的配置中声明您的 merge 驱动程序:

git config merge.keepTheir.name "always keep their during merge"
git config merge.keepTheir.driver "keepTheir.sh %O %A %B"

git config merge.keepMine.name "always keep mine during merge"
git config merge.keepMine.driver "keepMine.sh %O %A %B"
[merge "keepMine"]
        name = always keep mine during merge
        driver = keepMine.sh %O %A %B

我给出的示例不会要求您做出选择,但在 merge 时将始终保留“我的”(或“您的”)版本。
但是您可以修改此 merge 驱动程序执行的脚本来问您一个问题,然后将您的选择应用于所有 merge 。

关于git - 告诉 git 不要 merge 二进制文件而是选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2920594/

相关文章:

git - Phabricator 审查所有提交

python - 按时间合并 pandas 数据框和另一列

git - 如何修改别人的Github pull request?

GIT 接收后 Hook 不运行

r - 将许多 CSV 合并到不同的数据框中

vba - 无法使用 VBA 粘贴到合并单元格中

apache-kafka - Kafka 会改变二进制数据吗?

c - C 语言对二进制文件进行写入和读取

android - android设备上二进制文件损坏的可能原因是什么

git - 将 GitHub 存储库同步到 Azure DevOps