【发布时间】:2018-01-18 15:07:23
【问题描述】:
当您执行变基时,如果 git 无法解决当前分支和新基础分支之间的差异,git 会要求人工干预。
如果您解决冲突并输入 git rebase --continue,git 会将已解决的代码视为该提交的“新代码”。
但是当你点击git rebase --skip 时会发生什么?它不能让代码保持原样——存在冲突——所以它必须做的不仅仅是“跳过”。
【问题讨论】:
标签: git
当您执行变基时,如果 git 无法解决当前分支和新基础分支之间的差异,git 会要求人工干预。
如果您解决冲突并输入 git rebase --continue,git 会将已解决的代码视为该提交的“新代码”。
但是当你点击git rebase --skip 时会发生什么?它不能让代码保持原样——存在冲突——所以它必须做的不仅仅是“跳过”。
【问题讨论】:
标签: git
如果有冲突,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 相同的文本变化。
【讨论】:
git rebase --skip 更像是git rebase --delete-commit-and-continue。
git rebase 在分支foo 上复制每个提交,我们告诉它跳过复制 D。