我有一个简单的 makefile,应该打印 Git 日志,如下所示。
SHELL=/bin/bash
get_log:
echo $(git log)
但是,当我运行
make get_log
时,什么也没有返回。虽然如果我直接在 CMD 中运行 git log
,我会得到结果。
这里可能出现什么问题?
注意:make文件格式正确;我使用空格而不是 tabs 在这里发布问题。
线路
echo $(git log)
有两个缺陷:它使用单个
$
告诉 make 查找变量 git
的内容,但带有错误的空格和 log
作为加法。我认为 make
不会在这种格式不正确的访问下找到任何内容,这意味着它默默地将表达式替换为……什么也没有。其次,您不需要 echo
,因为 git log
无论如何都会写入 标准输出。所以正确的形式就是:
get_log:
git log
如果这非常有帮助则是另一个问题。我更喜欢在脚本中进行关注点分离——只要你不能添加任何好处,比如从部署分支获取日志或类似的东西,我就不会摆弄 Git。无论如何,用户必须学习其基础知识,例如
log
。
PS:我建议你阅读GNU Make Manual的手册,因为你连最基本的
make
的理解都缺乏(无意冒犯),此时它会让你一次又一次的沮丧(缺乏的)知识。