首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git配置别名转义

Git配置别名转义
EN

Stack Overflow用户
提问于 2016-06-27 14:59:24
回答 1查看 4.6K关注 0票数 11

我正在尝试编写一个git别名,从提交消息中删除字符串"ci跳过“(放在消息末尾),但我在转义方面遇到了问题。别名从作为参数传递给HEAD的提交中获取所有提交。

如果我运行以下命令:

代码语言:javascript
复制
git filter-branch -f --msg-filter "sed -e \"s/\[ci skip\]$//g\"" master..HEAD

它如预期的那样工作。无论如何,如果我创建了以下别名:

代码语言:javascript
复制
unwip = !sh -c 'git filter-branch -f --msg-filter \"sed -e \\\"s/\[ci skip\]$//g\\\"\" $0..HEAD'

我运行git unwip master,它抱怨配置错误,但我希望它能像前面的逗号那样运行。我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-28 08:56:04

编辑此解决方案并非在所有情况下都有效。这里是一个正确的解决方案,适用于所有情况。

我使用bash作为命令行,下面的别名适用于我:

代码语言:javascript
复制
unwip = "!f() { git filter-branch --msg-filter 'sed -e "s/[ci skip/]$/g"' $1..HEAD ; }; f"

唯一的缺点是您指定了解释器,并且总是使用sh。在我的例子中,我依赖于用户的shell。虽然我不相信这将是一个问题,在任何一个主要的外壳,因为我们正在做的只是基本的东西。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38057261

复制
相关文章

相似问题

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