对单个文件使用git merge策略

时间:2013-08-19 09:27:56

标签: git git-merge

在我们正在开发的项目中,我们正在从SASS中编译CSS。唯一的问题是我们开始经常在这些文件上发生合并冲突。

我们目前解决此问题的方法只是清除文件,并从正确合并的源SASS文件中自动重新编译。

除了将这些文件添加到.gitignore之外,我们避免这种情况的最佳方法是什么?我认为理想的解决方案是将该文件(和该文件一个)的合并策略设置为他们的/我的,但我不确定这是否可行。

2 个答案:

答案 0 :(得分:1)

如果将此(Git repo)视为代码存储库,则应将这些重新创建的文件类型/名称添加到.gitignore文件中。那是因为它们不是真正的文件。

但是,如果您需要repo来保留某些派生结果(以避免工具更新依赖性),那么您可能需要编写一个特殊的合并驱动程序(请参阅merge.<driver>.name配置选项和git-attributes“定义一个自定义合并驱动程序“)

应该可以将文件类型与驱动程序等相关联。

我没有尝试后者,所以...享受阅读手册的深度

答案 1 :(得分:0)

我会使用涂抹和清洁过滤器(link to doc)。

目标是基本上从合并操作中排除此文件,并在结帐后重建文件。

作为“涂抹”我将清空文件(或插入一个文本,说明该文件将从文件xyz重建)。

作为“干净”,我将从原始SASS重建文件。 如果css / sass文件的文件名以某种方式相关,这应该有用。

// %f passes the filename
// "rebuild_css"  and "clean_css" need to be written.
[filter "css"]
  clean = rebuild_css %f
  smudge = clean_css %f