使用与特定模式匹配的提交消息来压缩所有提交

时间:2017-07-27 21:03:01

标签: git github

有没有办法用匹配特定模式的提交消息压缩所有Git提交?

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

2 个答案:

答案 0 :(得分:2)

git rebase -i创建一个待办事项文件并调用编辑器;假设用户编辑文件并且git解释它。该文件位于well-known format。我创建了一个以非交互方式编辑文件的shell脚本,而不是交互式编辑器;我使用sed -i对其进行编辑;我使用s///搜索命令查找pick的{​​{1}}命令,并将其替换为$PATTERN命令。

档案squash;把你的模式(基本正则表达式)放在那里:

squash.sh

命令行:

#! /bin/sh
exec sed -i 's/^pick \([^ ]\+\) $PATTERN.\+$/squash \1/' $1

答案 1 :(得分:1)

这无法满足您的理想情况下这将是非交互式的...... 请求,但我这样做是为了实现同样的目标:https://twitter.com/csswizardry/status/843040649666596865

更通用的解决方案如下

:g/<pattern>/normal cws

这意味着:

  • :g/ - 查找包含...
  • 的行
  • <pattern>/ - ...此字符串
  • normal - 进入正常模式
  • cws - 将单词更改为s(对于壁球)