2016-10-11 11 views
2

makefileが正しいブランチ上で実行されていることを確認しようとしています。Makefileでifneqを使って現在のgitブランチを確認しています

私はそれらを比較するのに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 

感謝。

答えて

4

$(git ...)のようなmake関数がないため、可変参照が空の文字列に展開されます。あなたは常に走っています:

ifneq (, master) 

これは常にtrueです。

あなたはshell GNU関数を作る使用したい:

ifneq ($(shell git rev-parse --abbrev-ref HEAD),master) 
関連する問題