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

3

我希望能够在一个 node.js 脚本中将最后 n 个提交记录的提交信息为“squash commit”的提交记录压缩成一个单独的提交记录。我所知道的唯一压缩提交记录的方法是通过交互式 rebase,有没有办法从 node.js 脚本中执行此操作?

示例:

> 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.

根据这篇stackoverflow帖子https://dev59.com/s2025IYBdhLWcg3whWZm#5956198,我可以很容易地进入交互式变基,但是我如何从node脚本中使用它呢?谢谢。
1个回答

5
你不需要进行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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接