git - 相当于 git 预 merge 钩子(Hook)?

标签 git githooks

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

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

  1. 重要内容:即构成项目的模块文件列表
  2. 多余的东西:即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 。

prepare-commit-msg documentation

关于git - 相当于 git 预 merge 钩子(Hook)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743999/

相关文章:

git - 将 Git Hook 放入存储库

c++ - 如何在提交时自动格式化 Rust(和 C++)代码?

git - 如何获取两次提交之间的 pull 请求列表

eclipse - 这个图标在 Eclipse Project Explorer(带有向上箭头的数字)中意味着什么?

git - repo 历史上Git中枯死的 Twig 会永远存在吗?

git - 我将如何在 Git 中编写预 merge Hook ?

带有 `post-receive` 的 Git Hook `git pull` 通过命令行运行良好但在自动 Hook 时返回空字符串

Git:如何在 merge 前返回

git - 理解 git rev-list

git - Bitbucket 上的服务器端 Hook