【问题标题】:Can git commits be squashed from a node.js script?可以从 node.js 脚本中压缩 git 提交吗?
【发布时间】:2013-06-11 19:09:47
【问题描述】:

我希望能够从 node.js 脚本将最后 n 个具有“squash commit”提交消息的提交压缩为单个提交。我知道压缩提交的唯一方法是通过交互式变基,有没有办法从节点脚本中做到这一点?

例如:

> 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,但是我如何从节点脚本中使用它呢?

谢谢。

【问题讨论】:

    标签: git node.js


    【解决方案1】:

    你不需要做一个 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

    【讨论】:

      猜你喜欢
      • 2010-12-16
      • 2016-02-08
      • 2021-04-25
      • 2012-11-20
      • 2013-01-08
      • 1970-01-01
      • 2011-04-01
      • 2017-10-16
      • 2010-10-28
      相关资源
      最近更新 更多