2012-03-06 70 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

相關問題