【问题标题】:Tell git not to merge binary files but to choose告诉 git 不要合并二进制文件而是选择
【发布时间】:2011-02-24 14:57:17
【问题描述】:

当二进制文件、swfs、jars 和 flvs 在本地发生更改,我尝试拉入更改时,git 会尝试合并它们并报告冲突。

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

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

【问题讨论】:

    标签: git merge binaryfiles git-merge


    【解决方案1】:

    您可以在.gitattributes 文件中设置合并驱动器(仅适用于给定的子树,仅适用于某些文件类型)

    例如见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 存储库的配置中声明您的合并驱动程序:

    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
    

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

    【讨论】:

      猜你喜欢
      • 2011-08-10
      • 2013-03-20
      • 2022-01-06
      • 2011-02-09
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      相关资源
      最近更新 更多