Git 命令未在 makefile 中返回任何值

问题描述 投票:0回答:1

我有一个简单的 makefile,应该打印 Git 日志,如下所示。

SHELL=/bin/bash

get_log:
    echo $(git log)

但是,当我运行

make get_log
时,什么也没有返回。虽然如果我直接在 CMD 中运行
git log
,我会得到结果。

这里可能出现什么问题?

注意:make文件格式正确;我使用空格而不是 tabs 在这里发布问题。

linux bash git shell makefile
1个回答
5
投票

线路

 echo $(git log)

有两个缺陷:它使用单个

$
告诉 make 查找变量
git
的内容,但带有错误的空格和
log
作为加法。我认为
make
不会在这种格式不正确的访问下找到任何内容,这意味着它默默地将表达式替换为……什么也没有。其次,您不需要
echo
,因为
git log
无论如何都会写入 标准输出。所以正确的形式就是:

get_log:
   git log

如果这非常有帮助则是另一个问题。我更喜欢在脚本中进行关注点分离——只要你不能添加任何好处,比如从部署分支获取日志或类似的东西,我就不会摆弄 Git。无论如何,用户必须学习其基础知识,例如

log

PS:我建议你阅读GNU Make Manual的手册,因为你连最基本的

make
的理解都缺乏(无意冒犯),此时它会让你一次又一次的沮丧(缺乏的)知识。

© www.soinside.com 2019 - 2024. All rights reserved.