什么`git rebase --skip`在rebase期间跳过了什么?

时间:2018-01-18 15:07:23

标签: git

执行rebase时,如果无法解决当前分支与新基本分支之间的差异,git会要求手动干预。

如果您解决冲突并输入#include<stdio.h> #include<conio.h> void main() { int a=5,b=6; int *p,*q; p=&a; q=&b; printf("p = %u",p); printf("\nq = %u",q); printf("\nq-p = %u",q-p); getch(); } ,git会将已解析的代码视为该提交的“新代码”。

但是当你点击git rebase --continue时会发生什么?它不能保留代码 - 存在冲突 - 因此它必须做的不仅仅是“跳过”。

1 个答案:

答案 0 :(得分:10)

如果存在冲突,git rebase --skip只会跳过整个提交。在rebase成功完成后,该提交的更改将不会在历史记录中。我们来看一个例子

A-B-C <- master
 \
  D-E <- foo

现在说D在

之后引起冲突
git checkout foo
git rebase master

然后git rebase --skip会产生

A-B-C <- master
     \
      E' <- foo

其中E'包含与E相同的文本更改。