有没有办法以非交互方式变基和压缩我的功能分支中的所有内容?
Is there a way to non-interactively rebase and squash everything in my feature branch?
有时我在功能分支中有一堆小的提交,我想将它们全部压缩在一起,但还没有合并到父分支中。
我知道我可以(在这个例子中父分支是master
):
git rebase -i master
然后在第一个之后将所有提交标记为 "squash"。
有没有办法以非交互方式获得相同的结果?
本质上,我想创建一个新的提交,其树与现在位于我的功能分支头部的树相同,并且其父级是我指定的祖先提交(例如:master
),然后更改功能分支以指向该新提交。永远不应该有任何冲突(我偶尔会得到一些 rebase -i
),并且 -m
应该是完全非交互的。理想情况下,如果没有 -m
,提交消息应该默认为被压缩的提交的串联。
我该怎么做?
我对壁球的看法是使用 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
有时我在功能分支中有一堆小的提交,我想将它们全部压缩在一起,但还没有合并到父分支中。
我知道我可以(在这个例子中父分支是master
):
git rebase -i master
然后在第一个之后将所有提交标记为 "squash"。
有没有办法以非交互方式获得相同的结果?
本质上,我想创建一个新的提交,其树与现在位于我的功能分支头部的树相同,并且其父级是我指定的祖先提交(例如:master
),然后更改功能分支以指向该新提交。永远不应该有任何冲突(我偶尔会得到一些 rebase -i
),并且 -m
应该是完全非交互的。理想情况下,如果没有 -m
,提交消息应该默认为被压缩的提交的串联。
我该怎么做?
我对壁球的看法是使用 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