首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >压缩所有符合特定模式的提交消息的提交

压缩所有符合特定模式的提交消息的提交
EN

Stack Overflow用户
提问于 2017-07-28 05:03:01
回答 2查看 324关注 0票数 1

有没有一种方法可以压缩所有符合特定模式的提交消息的Git提交?

理想情况下,这将是非交互式的-它将在命令行中自动执行。

EN

回答 2

Stack Overflow用户

发布于 2017-07-28 06:37:15

git rebase -i创建一个todo文件并调用编辑器;假设用户编辑文件,git解释它。该文件位于well-known format中。我没有创建交互式编辑器,而是创建了一个非交互式编辑文件的shell脚本;我使用sed -i就地编辑它;我使用s///搜索命令查找$PATTERN中的pick命令,并将它们替换为squash命令。

文件squash.sh;将您的模式(基本正则表达式样式)放在那里:

代码语言:javascript
复制
#! /bin/sh
exec sed -i 's/^pick \([^ ]\+\) $PATTERN.\+$/squash \1/' $1

命令行:

代码语言:javascript
复制
chmod +x squash.sh
GIT_EDITOR=./squash.sh git rebase --interactive $COMMIT_ID
票数 3
EN

Stack Overflow用户

发布于 2017-07-28 05:12:35

这不能满足您的理想情况这应该是非交互式…请求,但我这样做是为了有效地实现相同的事情:https://twitter.com/csswizardry/status/843040649666596865

更一般的解决方案如下所示

代码语言:javascript
复制
:g/<pattern>/normal cws

Whch意味着:

  • :g/ -查找包含…的行
  • <pattern>/ -…此string
  • normal - Enter normal mode
  • cws -将单词更改为s(表示挤压)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45360965

复制
相关文章

相似问题

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