假设我有这样的提交历史
master
|
|A| -> |B| -> |E|
|
|C| -> |D|
|
hotfix
Run Code Online (Sandbox Code Playgroud)
假设提交E和D有冲突.现在,根据文件,经过一次变革
$> git checkout hotfix
$> git rebase master
# fix conflicts
$> git add -A
$> git rebase --continue
$> git push --force # rewrite history of branch hotfix on remote
Run Code Online (Sandbox Code Playgroud)
我会最终结束
master
|
|A| -> |B| -> |E|
|
|C| -> |D|
|
hotfix
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到我的合并/冲突结果在哪里?如果我变基再次
$> git rebase master
Run Code Online (Sandbox Code Playgroud)
我不希望再次发生同样的冲突,对吗?
最后一个问题,如果提交D在提交E之前,我上面显示的图表(在rebase之后的结果)是否仍然相同?
但是,我没有看到我的合并/冲突结果在哪里?
当你将git存储在.git
目录下的临时区域中时,将临时对象存储起来.(例如,.git/rebase-merge
.)如果存在冲突,将要求您在执行rebase的过程中解决它们.
如果我再次做出反抗......我不希望再次发生同样的冲突,对吗?
不,你不会再次得到相同的冲突,因为你已经在之前的(第一次)rebase中解决了它们.
最后一个问题,如果提交D在提交E之前,我上面显示的图表(在rebase之后的结果)是否仍然相同?
是的,无论在哪里C
,D
结果它仍然是相同的,在某种意义上它们将被应用在E
主人的顶端,但在这两种情况下,它不会完全是你绘制的图表.主要区别在于提交将是D'
和C'
,即使它们完全相同,D
并且C
在没有rebase冲突的情况下,它们将是新提交.
归档时间: |
|
查看次数: |
177 次 |
最近记录: |