git命令在makefile中没有返回任何值



我有一个简单的makefile,它应该打印git日志,如下所示:

SHELL=/bin/bash
get_log:
echo $(git log)

然而,当我运行make get_log时,没有返回任何东西,虽然如果我在CMD中直接运行git log,我得到结果。更新:文件格式正确,我使用空格而不是制表符在这里发布问题。你知道问题出在哪里吗?提前谢谢。

错误是在你的makefile格式上,根据设计,你必须使用制表符缩进所以你必须在echo $(git log)之前加一个tab indentation

echo $(git log)

有两个缺陷:它使用单个$,它告诉make查找变量git的内容,但有一个错误的空格和log作为附加。我不认为make会在这种病态的访问下找到任何东西,这意味着它默默地用……什么都没有代替表达式。其次,您不需要echo,因为git log无论如何都要写入stdout。所以正确的格式应该是:

get_log:
git log

如果这是非常有用的是另一个问题。我更喜欢在脚本中分离关注点——只要您不能增加任何好处,比如从部署分支或sg获取日志。类似地,我会远离git。无论如何,用户必须学习log之类的基础知识。

PS:我建议你阅读https://www.gnu.org/software/make/manual/上的手册,因为你甚至缺乏对make的最基本的理解(无意冒犯),它会一次又一次地让你感到沮丧(缺乏)知识。

相关内容

  • 没有找到相关文章

最新更新