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