我正在尝试运行这几行代码,以在任何配方之外的生成文件中获取 git 提交
GIT_VERSION := $(shell cd "C:\Users\made\up\filepath" && git describe --always)
$(info GIT_VERSION is '$(GIT_VERSION)')
但它总是打印
GIT_VERSION is ''
但是,如果我跑
PWD := $(shell cd "C:\Users\made\up\filepath" && pwd)
$(info PWD is $(PWD))
如我所料打印出
PWD is /cygdrive/c/Users/made/up/filepath
。
这使我认为 makefile 使用的 shell 有问题。
SHELL := $(shell echo $$SHELL)
给出 /bin/bash
,我注意到这与打开 git-bash shell 给我的 /usr/bin/bash
不同,虽然我不确定如何解释这个,在 Windows 上。有什么线索可以开始从 git
调用中获取一些输出吗?
更新:仍在为此苦苦挣扎。已经尝试了评论中推荐的
-C
git选项,包装在eval中,仍然没有得到GIT_VERSION