有没有办法非交互式变换和压缩我的功能分支中的所有内容?

问题描述 投票:1回答:1

有时我在一个功能分支中有一堆小提交,我想把它们全部压在一起,但是还没有合并到父分支中。

我知道我可以(在这个例子中,父分支是master):

git rebase -i master

然后将第一个提交后的所有提交标记为“壁球”。

有没有办法以非交互方式获得相同的结果?

基本上我想创建一个新的提交,其树与我现在位于我的特征分支头部的树相同,其父级是我指定的祖先提交(例如:master),然后将功能分支更改为指向那个新提交。永远不应该有任何冲突(我偶尔会得到一些rebase -i),而-m应该是完全非交互式的。理想情况下,如果没有-m,提交消息应该默认为被压缩的提交的串联。

我怎样才能做到这一点?

git git-rebase git-squash
1个回答
4
投票

我对壁球的看法是使用git reset --soft。假设您要压缩最后5次提交:

git reset --soft HEAD~5
git commit -m "Feature X"

如果你还想在(几乎)单次拍摄中完成所有这些操作,你仍然可以使用git reset --soft

How to squash/rebase in a single shot

© www.soinside.com 2019 - 2024. All rights reserved.