相当于一个git预合并钩子?

时间:2015-09-23 15:44:54

标签: git githooks

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

IDE会将两种类型的内容写入项目文件:

  1. 重要内容:即组成项目的模块文件列表
  2. 多余的东西:即IDE对话框X,Y位置设置
  3. 由于IDE没有将多余的东西拆分为每个用户设置文件的概念,我们最终会遇到合并冲突

    问题: git是否提供了一个扩展点(挂钩),当用户合并某种文件类型时,我可以忽略多余的东西?我的目标是默认为多余的东西的“他们/我的”类型合并策略,同时处理重要东西的合并,就像它一直一样。

1 个答案:

答案 0 :(得分:2)

您可以在合并时使用策略

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文件存在,则第二个参数将是merge。

prepare-commit-msg documentation