2014-11-08 24 views
1

我有以下庫:更換提交歷史有一個承諾

* d9da0f2 (HEAD, master) Fifth 
| * bf3b476 (branch1) branch1 first 
|/ 
* 13f93d5 Fourth 
* 94f2fa1 Third 
* 5333eb2 Second 
* be69a71 First 

所有我試圖做的是做一些它得到如下結構:

* d9da0f2 (HEAD, master) Fifth 
| * bf3b476 (branch1) branch1 first 
|/ 
* ?13f93d5? Reworded commit, with all the other commmits squashed/fixuped into it 

我嘗試以下操作:

git checkout 13f93d5 
git rebase -i --root 

reword be69a71 First 
fixup 5333eb2 Second 
fixup 94f2fa1 Third 
fixup 13f93d5 Fourth 

但以結束:

* commit a6a091c9bc495b9de5ca51dee5d0032454e669db (HEAD) 
    Author: frigo <[email protected]> 
    Date: Fri Nov 7 20:18:55 2014 +0100 

     First reworded 

* commit d9da0f2f273b91913ac241f3b6b034ef7babf1d1 (master) 
| Author: frigo <[email protected]> 
| Date: Fri Nov 7 20:24:18 2014 +0100 
|  Fifth 
| * commit bf3b476491547523321c765857de2097f77cdbd5 (branch1) 
|/ Author: frigo <[email protected]> 
| Date: Fri Nov 7 20:23:54 2014 +0100 
|  branch1 first 
* commit 13f93d5ca898a043d37d704d397d34cf1f133a05 
| Author: frigo <[email protected]> 
| Date: Fri Nov 7 20:20:12 2014 +0100 
|  Fourth 
* commit 94f2fa1bb654288860c6af34c0cc9ff1267e0e72 
| Author: frigo <[email protected]> 
| Date: Fri Nov 7 20:19:57 2014 +0100 
|  Third 
* commit 5333eb26b57b038b3b4fdf2cb91590c0254b4024 
| Author: frigo <[email protected]> 
| Date: Fri Nov 7 20:19:24 2014 +0100 
|  Second 
* commit be69a7194413d9760b9f8930edf79afe7095b716 
    Author: frigo <[email protected]> 
    Date: Fri Nov 7 20:18:55 2014 +0100 

     First 

如我所料,下面顯示的沒有區別:

git diff 13f93d5 a6a091c 

但仍然是所有提交重訂基期後提交保持附着於老犯層次。

我還試圖建立一個移植沒有父文件爲13f93d5和運行git filter-branch「把它雕刻成石頭」,但仍然給我留下的歷史與git --all可見。

回答

1

git checkout aSHA1表示您處於分離的HEAD模式。

你應該讓你的互動變基帶:

git checkout master 
git rebase -i --root 

執行改寫和修正內容你做,一邊撿d9da0f2(當前的主頭)

注意,這將會使branch1擱淺:

# after the rebase: 

git branch -f branch1 master~1 
git checkout branch1 
git cherry-pick bf3b476 
+0

謝謝!好答案。我的問題是,我試圖改變的真實存儲庫有兩年的歷史價值,我試圖擺脫和ca. 15-20個功能分支。櫻桃採摘所有分支的所有承諾不是爲了那些微弱的心(=我)。我想我的問題不是最好的。 – frigo 2014-11-08 10:01:16

+0

@frigo你可以挑選一系列的提交,雖然(http://stackoverflow.com/a/1994491/6309:它仍然會工作得很好。 – VonC 2014-11-08 10:02:25

+0

聽起來不錯,會試試看! – frigo 2014-11-08 10:57:03