首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在git --msg-filter中使用awk

如何在git --msg-filter中使用awk
EN

Stack Overflow用户
提问于 2017-04-10 16:45:25
回答 1查看 443关注 0票数 0

我正在试着清理一些git历史记录。例如,修剪我的提交消息中的所有行。我需要能够做一些事情,比如:

代码语言:javascript
复制
git filter-branch -f --msg-filter 'cat | awk '{$1=$1;print}'' HEAD

当然,这将会失败,因为我错误地使用了撇号。

如果我试图转义,或者使用双撇号,它也不起作用。

作为我需要处理的示例,请使用以下代码:

代码语言:javascript
复制
    Add cool service to application

Related: ISSUE-3

这是在提交末尾添加相关问题标识符并将其从我的摘要行中删除的结果,请注意提交摘要中的空格。我想用awk修剪的主要是那些提交摘要。

有人能帮我练练我有限的狂欢技巧吗?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2017-04-10 18:04:23

在以下命令中:

代码语言:javascript
复制
git filter-branch -f --msg-filter 'cat | awk '{$1=$1;print}'' HEAD

最里面的单引号之间的表达式不会转义,$1将替换为值

代码语言:javascript
复制
git filter-branch -f --msg-filter 'cat | awk '\''{$1=$1;print}'\' HEAD

可能是有效的。另请尝试在行的开头添加echo命令

代码语言:javascript
复制
echo git filter-branch -f --msg-filter 'cat | awk '{$1=$1;print}'' HEAD
echo git filter-branch -f --msg-filter 'cat | awk '\''{$1=$1;print}'\' HEAD

或更清晰地添加printf "'%s'\n"

代码语言:javascript
复制
printf "'%s'\n" git filter-branch -f --msg-filter 'cat | awk '\''{$1=$1;print}'\' HEAD
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43318574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档