2014-01-14 42 views
0

我在Bitbucket上有一個倉庫。我有點搞砸了提交日誌,當我試圖壁球提交c2658250a1837e我該如何解決這個git commit log?

enter image description here

試圖壁球這些提交導致0942142,這基本上是空的。我的意思是,如果我嘗試查看提交,它顯示沒有更改文件,這對於「合併」提交可能是正常的 - 我不知道。

很顯然,我需要向推前到位桶來解決這樣的事情,但我怎麼能在事後修復它?如果可能,我想壓縮0942142,c2658250a1837e,因此它看起來像一個名爲「刪除未使用的文件」的單個提交。

PS:這是一個私人回購協議(現在),所以沒有人已經退出所有這些變化(還)。

編輯: TheBuzzSaw的答案是正確的,因爲從0a1837e開始壓縮每一個提交。 (我只想壓縮這三個提交併保留其餘的歷史,但是(截圖是一個模型 - 並不代表實際的變化)。所以,我不得不這樣做:

git reset --hard HEAD~7 
git cherry-pick -n 0a1837e..c265825 
git cherry-pick -n -m 1 0942142 
git commit -m "Removed unused files" 
git cherry-pick 8f8308b 
git cherry-pick f7b14f5 
git cherry-pick bb90ff9 
git cherry-pick 976985d 
git cherry-pick 6f4d0c2 

現在我的提交日誌美化:

enter image description here

回答

2
git branch area51 
git reset --hard HEAD~7 
git merge --squash --no-commit area51 
git commit -m "My new commit message." 
git push -f 
git branch -D area51 

根據需要調整。

+0

我應該提到自從合併後('0942142')我有五個額外的提交。這會改變什麼嗎? –

+0

是的,但它們應該是微小的調整。你可以'git reset'回到你的安全區域,然後'git cherry-pick'單獨提交(再次傳遞'--no-commit'選項以簡單地將更改應用到當前狀態)。 – TheBuzzSaw

+0

對不起,我很困惑。你可以看看我的文章中更新的日誌,並告訴我我需要做什麼? –