我在一个项目中工作,多个开发人员必须使用单个项目文件编辑代码。他们编辑的大多数代码实际上都位于不同的代码模块文件中,但是他们必须共享单个项目文件。
IDE会将两种类型的内容写入项目文件:
由于IDE没有将多余的东西拆分为每个用户设置文件的概念,我们最终会遇到合并冲突
问题: git是否提供了一个扩展点(挂钩),当用户合并某种文件类型时,我可以忽略多余的东西?我的目标是默认为多余的东西的“他们/我的”类型合并策略,同时处理重要东西的合并,就像它一直一样。
答案 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。