2014-04-10 41 views
4

我遇到rebase問題。我想擠壓一些建築物,但我不能。什麼git日誌顯示我不匹配什麼git rebase -i head〜3顯示我

這是我所得到的,當我執行命令git log –oneline

git log --oneline 
2e6d3cf Fix bug fetching data 
4abe96e conflicts merged 
34d130d latam_schedule with geotargeted languaje and data fetching 
8687f73 removes extra lines, and add the includes I remove before. 
eed4f10 unnecessary adds and sample block removed 
d2d58e6 latam_schedule with geotargeted languaje and data fetching 
75b1b6d parseo el string para extraer las horas. 
8a3b067 Agrego un render con datos reales 
d856ef1 Agrego un render de data dummy 
7331f83 Alert removed(commented) 
128bfc1 First LATAM commit 
4dd79cb Merge pull request #1016 from matterhorn/disco-608-bugfix 

的問題是,我沒有看到2e6d3cf,4abe96e和34d130d承諾,我希望當我執行git rebase HEAD~3壁球。

取而代之的是三個提交我的,我看到了下面當我執行git rebase -i HEAD~3

pick 34d130d latam_schedule with geotargeted languaje and data fetching 
pick d2d58e6 latam_schedule with geotargeted languaje and data fetching 
pick eed4f10 unnecessary adds and sample block removed 
pick 8687f73 removes extra lines, and add the includes I remove before. 
pick 2e6d3cf Fix bug fetching data 

的事情是,我不知道爲什麼d2d58e6,eed4f10和8687f73是在列表中。另一方面,如果我嘗試繼續前進並擠壓,那麼應該不存在很多衝突(如試圖合併太舊的文件)。

這是git log --oneline --graph --decorate顯示

git log --oneline --graph --decorate 
* 2e6d3cf (HEAD, matterhorn-latam/latam, latam) Fix bug fetching data 
* 4abe96e conflicts merged 
|\ 
| * 8687f73 (matterhorn-latam/master, master) removes extra lines, and add the includes I remove before. 
| * eed4f10 unnecessary adds and sample block removed 
| * d2d58e6 latam_schedule with geotargeted languaje and data fetching 
* | 34d130d latam_schedule with geotargeted languaje and data fetching 
|/ 
* 75b1b6d parseo el string para extraer las horas. 
* 8a3b067 Agrego un render con datos reales 
* d856ef1 Agrego un render de data dummy 
* 7331f83 Alert removed(commented) 
* 128bfc1 First LATAM commit 

任何想法?

+0

請顯示'git log --oneline --graph --decorate'的輸出。另外,請記住,除非使用'-p'或'--preserve-merges',否則rebase不會保留合併提交。另外,你的問題有點令人困惑,因爲你所說的某些提交從rebase編輯器中遺漏了,事實上只是以相反的順序,因爲rebase以相反的順序應用提交,它們出現在'git log'中。 –

+0

我剛剛將這些信息添加到了帖子中。 – Werem

+0

對。你會得到意想不到的結果,因爲你不使用'--preserve-merges'。但是,當我執行'git rebase HEAD〜3'時,''2e6d3cf','4abe96e'和'34d130d'提交我想合併的是什麼意思?爲什麼你的意思是「合併」?你的意思是你想***這些提交嗎? 「合併」在git中有一個非常具體的含義:將兩個分支合併在一起。這不是你想要做的這些提交,是嗎?請澄清你的問題。 –

回答

0

必要提交不遵守,因爲HEAD~3告訴混帳永遠走在提交樹,這恰好按照合併後的分支歷史,這一點,從你的問題,不是因爲你是後歷史上第一個父。

您需要明確選擇commit^1commit^2(對於章魚合併還有commit^3)以導航樹。對於你的例子:

git log --oneline --graph --decorate 
* 2e6d3cf HEAD 
* 4abe96e HEAD^1 = HEAD~1 (! History branches here. !) 
|\ 
| * 8687f73 HEAD^1^1 = HEAD^^ = HEAD~2 
| * eed4f10 HEAD^^^ = HEAD~3 
| * d2d58e6 HEAD^^^^ = HEAD~4 
* | 34d130d HEAD^2 (! Note !) 
|/ 
* 75b1b6d HEAD^2^ = HEAD^^^^^ = HEAD~5 
* 8a3b067 ... 
* d856ef1 ... 
* 7331f83 ... 

順序是這裏有點不尋常,因爲合併提交記錄的家長,使得在合併的時候頭總是第一父母,和這意味着當您完成合並後,您必須已經在8687f73上,才能算作第一個。

相關問題