有时我在一个功能分支中有一堆小提交,我想把它们全部压在一起,但是还没有合并到父分支中。
我知道我可以(在这个例子中,父分支是master
):
git rebase -i master
然后将第一个提交后的所有提交标记为“壁球”。
有没有办法以非交互方式获得相同的结果?
基本上我想创建一个新的提交,其树与我现在位于我的特征分支头部的树相同,其父级是我指定的祖先提交(例如:master
),然后将功能分支更改为指向那个新提交。永远不应该有任何冲突(我偶尔会得到一些rebase -i
),而-m
应该是完全非交互式的。理想情况下,如果没有-m
,提交消息应该默认为被压缩的提交的串联。
我怎样才能做到这一点?
我对壁球的看法是使用git reset --soft。假设您要压缩最后5次提交:
git reset --soft HEAD~5
git commit -m "Feature X"
如果你还想在(几乎)单次拍摄中完成所有这些操作,你仍然可以使用git reset --soft