我从事的项目中,多个开发人员必须使用单个项目文件编辑代码。他们编辑的大部分代码实际上位于单独的代码模块文件中,但他们必须在彼此之间共享单个项目文件。
IDE 向项目文件写入两种类型的内容:
- 重要内容:即构成项目的模块文件列表
- 多余的东西:即IDE对话框X、Y位置设置
因为 IDE 没有将多余的内容拆分到每个用户设置文件中的概念,所以我们总是会遇到 merge 冲突
问题:git 是否提供了一个扩展点(钩子(Hook)),允许我在用户 merge 某种文件类型时忽略多余的东西?我的目标是默认对多余的东西采用“他们的/我的”类型的 merge 策略,同时以一如既往的方式处理重要的东西的 merge 。
最佳答案
您可以在 merge 时使用策略
git merge --strategy-option theirs # or ours
为什么你需要一个钩子(Hook)呢?如果您只想对某些目录或文件执行此操作,则在 merge 时可以使用 -
git checkout --theirs path/to/the/conflicted_file.php
据我所知,git 没有提供预 merge 钩子(Hook)。如果你使用rebase而不是merge,那么你可以使用pre-rebase
钩子(Hook)。您可以尝试使用 prepare-commit-msg
Hook 。如果提交是 merge 或 .git/MERGE_MSG 文件存在,则第二个参数将为 merge 。
关于git - 相当于 git 预 merge 钩子(Hook)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743999/