git 如何在不进入交互式编辑器的情况下 合并commit ?

作者站长头像
站长
· 阅读数 11

有 3 个 commit, 想合并成 1 个,不想去手动改,就想写个 js 脚本来做,

但是不知道什么命令可以在 不进入交互式编辑,还能合并 commit 的,

有大佬知道吗?

回复
1个回答
avatar
test
2024-07-13

1. 用 --interactive 但是不 interactive

GIT_EDITOR=true GIT_SEQUENCE_EDITOR="sed -i -e '2,\$s/^pick/squash/'" git rebase -i HEAD~3

GIT_SEQUENCE_EDITOR 用于编辑 todo,将第二行开始每行开头的 pick 都换成 squashGIT_EDITOR=true 用于防止 squash 时 git 打开编辑器

2. 利用 reset

git reset --soft HEAD~3
git commit -m 'squash message'
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容