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

JKi*_*ely 5 git makefile

我正在尝试让我的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
Run Code Online (Sandbox Code Playgroud)

谢谢.

Mad*_*ist 10

没有这样的make函数$(git ...),因此变量引用扩展为空字符串.你总是跑步:

ifneq (, master)
Run Code Online (Sandbox Code Playgroud)

这将永远是真的.

您想使用shellGNU make函数:

ifneq ($(shell git rev-parse --abbrev-ref HEAD),master)
Run Code Online (Sandbox Code Playgroud)