相当于 git 预合并挂钩?

Equivalent of a git pre-merge hook?

我在一个项目中工作,其中多个开发人员必须使用单个项目文件编辑代码。他们编辑的大部分代码实际上位于单独的代码模块文件中,但是他们必须在他们之间共享单个项目文件。

IDE 写入项目文件的内容有两种:

  1. 重要内容:即构成项目的模块文件列表
  2. 多余的东西:即IDE对话框X,Y位置设置

因为 IDE 没有将多余的东西拆分到每个用户设置文件中的概念,所以我们最终会遇到合并冲突 一直

问题: git 是否提供了一个扩展点(挂钩),允许我忽略 多余的东西用户正在合并某种文件类型?我的目标是为 多余的东西 默认使用 "theirs/mine" 类型的合并策略,同时以相同的方式处理 重要的东西 的合并它总是如此。

合并时可以使用策略

git merge --strategy-option theirs # or ours

为什么你需要一个钩子?如果您只想对某些目录或文件执行此操作,则在合并时可以使用 -

git checkout --theirs path/to/the/conflicted_file.php

据我所知,git 没有提供预合并挂钩。如果你使用 rebase 而不是 merge,那么你可以使用 pre-rebase hook。您可以尝试使用 prepare-commit-msg 钩子。如果提交是合并或存在 .git/MERGE_MSG 文件,则第二个参数将是合并。

prepare-commit-msg documentation