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

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

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

有大佬知道吗?

阅读 2.2k
1 个回答

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 都换成 squash
GIT_EDITOR=true 用于防止 squash 时 git 打开编辑器

2. 利用 reset

git reset --soft HEAD~3
git commit -m 'squash message'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏