如何让Git始终选择文件的本地版本

时间:2014-05-06 20:59:35

标签: git

在我的包中,我有一个单元测试运行器作为构建的一部分运行。此运行器生成一个文本文件,列出我的代码中所有源文件的单元测试覆盖率。

这个文件通常会随着每次提交而改变,而且每当我从这个特定文件中的任何地方合并/拉/弹出时,git几乎总是显示冲突。

有没有办法让git总是选择当前在我的本地存储库中的文件版本,因为它通常代表更新的覆盖范围。

我想要从存储库中完全删除这个文件,但是让我看到每次提交的代码覆盖率非常好。

3 个答案:

答案 0 :(得分:1)

您可以根据具体情况选择您的--ours

Choose Git merge strategy for specific files ("ours", "mine", "theirs")

此外,您可以创建一个合并后挂钩,每次检查您的文件版本,这将在一定程度上自动执行此操作,具体取决于您的工作流程。

答案 1 :(得分:0)

您可能希望使用git pull运行-X ours,但是,我不建议在存储库中使用这些类型的自动生成的文件。我宁愿使用结账钩。

答案 2 :(得分:0)

配置一个完全忽略传入文件的普通合并驱动程序:

git config merge.ours.driver true    # or even --global this one

并将该合并驱动程序分配给您希望在.gitattributes中保留的构建产品:

echo path/to/build-report merge=ours >>.gitattributes
git add .gitattributes

(上面的例子只是unix true命令,它的成功表明它使本地版本看起来正确,在这种情况下通过什么都不做。)