在Makefile中使用ifneq检查当前的git分支

5

我正在尝试让我的makefile检查它是否在正确的分支上运行,如果不是,则抛出错误。

我使用ifneq进行比较,并使用git rev-parse --abbrev-ref HEAD获取检出的分支,但它不会将它们视为相等。我该怎么办?

现在代码看起来像这样:

ifneq ($(git rev-parse --abbrev-ref HEAD), master)
    $(error Not on branch master)
else
    git checkout gh-pages
    git merge master
    git checkout master
endif

感谢您的信任。
1个回答

10

没有名为$(git ...)的制作函数,因此变量引用会扩展为空字符串。您始终在运行:

ifneq (, master)

这将始终为真。

您想使用shell GNU make函数:

ifneq ($(shell git rev-parse --abbrev-ref HEAD),master)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接