将我的所有提交(包括合并)压缩到一个提交中而不改变历史记录

tes*_*ter 1 git squash

假设我在我的分支机构中有100个提交,我已经工作了3个星期.偶尔(每天,真的)我从origin/master拉出来并将它合并到我的分支中.

我怎么能(轻松地)将我的所有提交压缩成一个提交而不会弄乱历史?如果我以某种方式将我的所有提交压缩成一个,当我的pull请求移动到origin/master时,我会破坏合并的origin/master pull吗?

Amb*_*ber 8

"压扁"和"保存历史"在术语上几乎是直接对立的.

如果你的意思是你想做一个仅包含你的更改的提交,而不是来自上游master的提交,你可能想要rebase在origin/master上然后从那里压缩.您可以通过单个调用交互式rebase来完成所有这些操作:

git fetch origin
git rebase -i origin/master
Run Code Online (Sandbox Code Playgroud)

然后从第一后更改所有线路picksquash.