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

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

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

SHELL=/bin/bash

 get_log:
     echo $(git log)

但是,当我运行

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

文件格式正确;我在这里使用空格而不是制表符来发布问题。 这里可能有什么问题?

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

线路

 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
最基本的理解(无意冒犯),这会令人沮丧你一次又一次地在这一点上(缺乏)知识。

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