2017-04-06 84 views
1

當兩個提交由我一個又一個的做,我可以如何壁球老提交和最近的合併提交

git rebase -i origin/{branch}~1 {branch} 

壓扁他們,但現在提交的順序是不同的:

  1. 我犯
  2. 合併與上游:合併分支github.com的「主人」:...
  3. 這是被推到原點。

現在git log和我的pull請求顯示我的原始提交和合並提交。 但上面的rebase命令只顯示來自上游的其他提交,並且由於某種原因沒有合併提交。

所以,我怎麼能夠壓制承諾如果混帳底墊甚至不顯示呢?

回答

0

通常衍合刪除合併完全承諾。原因很簡單:變基副本承諾,通過把他們變成修改,然後將這些更改到一個新的基地(因此命名爲「重訂」)。一旦複製,你贊成的閃閃發光的新副本「放棄」原來提交:

... <--B <--C <-- master 
     \ 
     D <--E <--F <-- branch 

變爲:

... <--B <--C <-- master 
      \ 
       D' <--E' <--F' <-- branch 

其中D'D閃亮的新副本,等等。換句話說,底墊收集起來提交諸如D-E-F的字符串,並將其轉換爲「什麼是從BD不同,有什麼不同DE,什麼是從EF不同。然後GIT中可以應用相同變化到C使D',然後重新申請航班嗎D變化ED',等等。

這是一般不明智的變基任何出版(推)提交的,除非你與大家預先安排這其他誰分享推送到存儲庫他們理解並能夠與之協調的帽子。從本質上講,他們-其他人都使用你贊成閃亮換新放棄提交;所以他們必須放棄贊成閃亮的新的提交者,否則他們將帶回老/骯髒/破損/不管提交。

合併提交不得不變成變化沒有明確的辦法,因爲他們有以前(或)款,而不僅僅是一個,而改變合併是相結合的結果來自每個家長的變化。 (這是可能創造一個新的合併,但是這是非常棘手的,這不是安全這與正常的互動變基相結合。)