2017-04-06 85 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',等等。

这是一般不明智的变基任何出版(推)提交的,除非你与大家预先安排这其他谁分享推送到存储库他们理解并能够与之协调的帽子。从本质上讲,他们-其他人都使用你赞成闪亮换新放弃提交;所以他们必须放弃赞成闪亮的新的提交者,否则他们将带回老/肮脏/破损/不管提交。

合并提交不得不变成变化没有明确的办法,因为他们有以前(或)款,而不仅仅是一个,而改变合并是相结合的结果来自每个家长的变化。 (这是可能创造一个新的合并,但是这是非常棘手的,这不是安全这与正常的互动变基相结合。)