我在Windows 10上使用SourceTree 1.9.10.0,我不想将我的功能分支EUR-1058重新绑定到主设备上。我不喜欢这样写道:SourceTree - Git Rebase导致自动合并
这将导致以下三种:
,如果我做一个拉一个自动合并发生:
这是怎么发生的?是否这是由于提交“Mailcheck重写”在我的笔记本电脑上,而我现在正在从我的桌面重新定位,并且SHA-1哈希已经以某种方式更改或类似?
我在Windows 10上使用SourceTree 1.9.10.0,我不想将我的功能分支EUR-1058重新绑定到主设备上。我不喜欢这样写道:SourceTree - Git Rebase导致自动合并
这将导致以下三种:
,如果我做一个拉一个自动合并发生:
这是怎么发生的?是否这是由于提交“Mailcheck重写”在我的笔记本电脑上,而我现在正在从我的桌面重新定位,并且SHA-1哈希已经以某种方式更改或类似?
当您重新编制master
上的EUR-1058
分支时,您将重写为该分支的历史记录。考虑以下示出了这一点:
master: ...A -- B ---- C -- D
\
EUR-1058: E -- F
衍合EUR-1058
上master
装置执行以下步骤:
master
提交,在此情况下提交B
B
之上的master
的提交,在这种情况下重放提交C
和D
EUR-1058
作出的提交,因为提交B
,即承诺E
和F
重订基期后,该图是这样的:
master: ...A -- B ---- C -- D
\
EUR-1058: E' -- F'
请注意,我已经标记E'
和F'
,以表明这些实际上是新的提交,这是在rebase期间进行的。
现在回答你的问题的实际,当你试图在EUR-1058
做git pull
,Git会先检查,看看你的本地分支可能是由什么是在远程(或origin/EUR-1058
)快速转发。在这种情况下,没有快进是可能的。此时Git认为远程分支与您在本地完全不同。因此,它通过合并提交完成了拉取。
你或许应该做的什么是强制把你的基期EUR-1058
分支到远程通过完成重订后:
git push --force EUR-1058
使用武力是必要在这里,因为分支的历史/基础发生了变化。这与您最终进行合并提交的原因相同。在推动之后,你可以像往常一样继续生活。
作为谨慎的一句话,您应该认识到,重写EUR-1058
的历史记录可能会导致共享此分支的任何人遇到问题。所以,应该仔细做。
你的语言很混乱。 “重新”到“是一个特定的事情,而不是你在做什么。您是否想要在'master'上重写'feature',反之亦然?至于自动合并,您在SourceTree中拉取的默认值可能会合并,因此您得到了合并。 –
@TimBiegeleisen主人的EUR-1058。在SourceTree中,标题说'重新编译当前主目录到主目录 – Ogglas