我正在试着清理一些git历史记录。例如,修剪我的提交消息中的所有行。我需要能够做一些事情,比如:
git filter-branch -f --msg-filter 'cat | awk '{$1=$1;print}'' HEAD当然,这将会失败,因为我错误地使用了撇号。
如果我试图转义,或者使用双撇号,它也不起作用。
作为我需要处理的示例,请使用以下代码:
Add cool service to application
Related: ISSUE-3这是在提交末尾添加相关问题标识符并将其从我的摘要行中删除的结果,请注意提交摘要中的空格。我想用awk修剪的主要是那些提交摘要。
有人能帮我练练我有限的狂欢技巧吗?
提前感谢
发布于 2017-04-10 18:04:23
在以下命令中:
git filter-branch -f --msg-filter 'cat | awk '{$1=$1;print}'' HEAD最里面的单引号之间的表达式不会转义,$1将替换为值
git filter-branch -f --msg-filter 'cat | awk '\''{$1=$1;print}'\' HEAD可能是有效的。另请尝试在行的开头添加echo命令
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"
printf "'%s'\n" git filter-branch -f --msg-filter 'cat | awk '\''{$1=$1;print}'\' HEADhttps://stackoverflow.com/questions/43318574
复制相似问题