可以从node.js脚本中压缩git提交吗?



我希望能够从node.js脚本中压缩最后n个有"squash commit"提交消息的提交。唯一的方法,我知道挤压提交是通过一个交互式的rebase,有办法做到这一点,从一个节点脚本?

,

> git log --oneline | head -4
ecce153 Do not change commit
dd831f6 squash commit
c20677a squash commit
86b52fb squash commit
> ./squash.js "New commit made by squashing 3 'squash commit' commits."
ecce153 Do not change commit
as34dwf New commit made by squashing 3 'squash commit' commits.

离开这个SO帖子,https://stackoverflow.com/a/5956198/626759,我可以很容易地得到交互式重基,但我怎么能从一个节点脚本工作?

谢谢。

你不需要做一个rebase来压缩n次提交:

git reset HEAD~4
git add .
git commit -m "squashed four commits"

这将备份HEAD四次提交,但保留工作目录中当前的更改,然后在单个提交中添加并提交这些更改。

更短的版本

git reset --soft HEAD~4
git commit -m "squashed four commits"

--soft也保留了索引,所以你不需要add

最新更新