代码之家  ›  专栏  ›  技术社区  ›  lprsd

告诉Git不要合并二进制文件,而是选择

  •  7
  • lprsd  · 技术社区  · 16 年前

    当二进制文件、SWF、JAR和FLV在本地更改时,我尝试引入更改,Git尝试合并它们并报告冲突。

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

    有没有一种方法可以告诉Git,不要尝试合并二进制文件并询问我要使用哪个版本?

    1 回复  |  直到 12 年前
        1
  •  7
  •   Community Mohan Dere    9 年前

    您可以在 .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 repo的配置中声明合并驱动程序:

    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
    

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