如何扩展git merge驱动程序?

时间:2019-02-18 12:46:55

标签: git git-merge

我找到了一个有关如何实现git merge驱动程序的出色示例: https://github.com/Praqma/git-merge-driver

为了节省一些点击次数,其目的是创建一个合并脚本,更改.gitconfig并更改.gitattributes以将其用于某些文件。

merge-driver.sh

echo "ancestor: $1"
echo " current: $2"
echo "   other: $3"
echo "This is the merge result" > $2
echo "Conflict resolved!"
echo "resolved: $2"
cat $2
exit 0

.gitconfig

[merge "my-custom-driver"]
    name = Custom Driver
    driver = merge-driver.sh %O %A %B

.gitattributes

*.mrg merge=my-custom-driver

我的问题是:我想在解决冲突之前调用Git默认的合并驱动程序,如果没有正确退出,那么我可以检查<<< === >>>冲突并尽可能解决。

那么,如何手动调用git default merge driver?

1 个答案:

答案 0 :(得分:1)

  

...如何[如何]手动调用git default合并驱动程序?

您不能-不完全是。问题是在低级合并处理中,默认合并驱动程序直接内置在git merge中。替代方法是调用内置合并处理或调用自定义驱动程序,如果您选择了自定义驱动程序,则默认合并处理替代方法已被拒绝并且不再可用。

幸运的是,Git中内置了一个程序,它几乎与默认合并驱动程序一样好,甚至更好(它具有默认驱动程序缺少的一个选项)。该程序分别命名为git merge-fileit is documented。如果为它提供正确的参数集,它将实现与默认合并驱动程序几乎相同的功能。

如果它认为解决了冲突,它将退出零;否则,将退出非零。