2012-03-06 113 views
1

假设我在我的分支中有100个提交,我已经进行了3个星期的工作。偶尔(每天,真的)我从原产地/主人拉并合并到我的分支。将我的所有提交(包括合并)压缩到一个提交而不改变历史记录

我怎么能(轻易地)把我所有的提交压缩到一个提交而不会搞乱历史?如果我以某种方式将我的所有提交压缩为一个,当我的pull请求移入origin/master时,是否会销毁合并的origin/master?

回答

8

“挤压”和“保存历史”在术语上大致是直接相反的。

如果您的意思是您想要进行一次只包含您的更改而不是来自上游主人的更改,那么您可能需要来源/主控,然后从那里压扁。你可以做这一切,从交互式底垫的一次调用:

git fetch origin 
git rebase -i origin/master 

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

+0

所以我有我的分支“富”检出。我运行'git rebase -i origin/master',并且看到大量提交。如果我将它们全部压扁,然后推送给master,那么我之前合并并压扁的提交会从origin/master的历史中永久删除? (例如,在我的南瓜提交之前,我将git重置头提交给提交。当我重置时,一切都会一样吗?) – tester 2012-03-06 18:01:44

+0

您是否看到列表中已提交的提交内容?如果是这样,有什么不对。 – Amber 2012-03-06 18:08:38

+0

是的,我看到的大部分提交都是我在'git pull's期间合并/自动合并的东西..它也是相反的顺序(我最近的提交是在底部)。有任何想法吗? – tester 2012-03-06 18:32:15

相关问题