
想压缩 git 的多个 commit 为一个,了解到 git rebase -i 可以,但它是交互式的压缩。
想用脚本自动化压缩,所以求助是否有非交互式的压缩方式?
故求助 V2 社区,谢谢
1 donghui OP |
2 otakustay 2017-03-02 11:55:05 +08:00 先 reset 回去再 commit 呗,但这比较危险 |
3 Chrisplus 2017-03-02 12:44:51 +08:00 压缩多次提交为一个的需求场景是什么呢? 如果仅仅是因为这多个 commit 属于一个 feature ,那么应该用分支 merge 的方法来进行吧 |
7 Chrisplus 2017-03-02 13:54:34 +08:00 |
9 momocraft 2017-03-02 14:00:26 +08:00 "squash 成一个 commit" 和 "创建一个和分支的顶端有相同内容的 commit" 是等价的。如果 reset+commit 有影响,那 rebase 同样有影响。 另外一个 commit 未压缩也就几百 B~几 k ,我好奇你们的 repo 大到什么程度... |
11 donghui OP @momocraft repo 一般也不大的,是我自己建了个 repo ,用脚本往上面备份一些东西, commit 比较频繁,时间久了这个就比较大了 [尴尬] |
12 wellsc 2017-03-02 14:15:29 +08:00 git cherry-pick |
14 QAPTEAWH 2017-03-02 14:54:30 +08:00 diff 生成 patch 然后再 apply ? |
16 SoloCompany 2017-03-02 22:03:42 +08:00 via iPad a1 a2 a3 a4 git reset --soft a1^ git commit -m "a1 ~ a4" 或者 git reset --soft a1 git commit --amend -m "a1 ~ a4" --ignore-date |
17 donghui OP @SoloCompany 嗯 这么倒是也可以~ |
18 SoloCompany 2017-03-03 11:05:56 +08:00 @donghui #17 去掉最后一个 --ignore-date 和 rebase -i 上选择了 pick, squash, squash, squash 是完全等价的 |
19 donghui OP @SoloCompany 是的, thanks |