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

时间:2012-03-06 17:36:16

标签: git squash

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

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

1 个答案:

答案 0 :(得分:8)

“压扁”和“保存历史”与术语大致直接相反。

如果您想要进行仅包含更改的单个提交而不包含来自上游主数据的提交,您可能需要rebase到origin / master,然后从那里压缩。您可以通过单次调用交互式rebase来完成所有这些操作:

git fetch origin
git rebase -i origin/master

然后将第一行之后的所有行从pick更改为squash