有没有一种方法可以压缩所有符合特定模式的提交消息的Git提交?
理想情况下,这将是非交互式的-它将在命令行中自动执行。
发布于 2017-07-28 06:37:15
git rebase -i创建一个todo文件并调用编辑器;假设用户编辑文件,git解释它。该文件位于well-known format中。我没有创建交互式编辑器,而是创建了一个非交互式编辑文件的shell脚本;我使用sed -i就地编辑它;我使用s///搜索命令查找$PATTERN中的pick命令,并将它们替换为squash命令。
文件squash.sh;将您的模式(基本正则表达式样式)放在那里:
#! /bin/sh
exec sed -i 's/^pick \([^ ]\+\) $PATTERN.\+$/squash \1/' $1命令行:
chmod +x squash.sh
GIT_EDITOR=./squash.sh git rebase --interactive $COMMIT_ID发布于 2017-07-28 05:12:35
这不能满足您的理想情况这应该是非交互式…请求,但我这样做是为了有效地实现相同的事情:https://twitter.com/csswizardry/status/843040649666596865
更一般的解决方案如下所示
:g/<pattern>/normal cwsWhch意味着:
:g/ -查找包含…的行<pattern>/ -…此stringnormal - Enter normal modecws -将单词更改为s(表示挤压)https://stackoverflow.com/questions/45360965
复制相似问题