我有一个feature-1
分支。最终,它将合并到我的develop
分支中,该分支在我的团队之间共享。进行一些更改之后,我进行了一次提交{1}并将其推送到源feature-1
分支。
当我将feature-1
改成develop
时,没有冲突,并且git说:Your branch and 'origin/feature-1' have diverged, and have 20 and 1 different commits each, respectively.
此时,人们将使用git push --force就是这样。但是我注意到,在重新设置基准之后,我在本地提交{1}中所做的所有更改都丢失了,因此我无法进行强制推送,因为我在origin / feature-1上的提交{1}将丢失。
当重新设置基准时忽略我的推送提交时,这是git的正常行为吗?我是否应该在重新确定基准之前就推送提交?
答案 0 :(得分:1)
对于您的情况,可以强制将feature-1
分支推送到远程。
我们可以通过以下图表进行说明:
在将feature-1
迁移到develop
分支之前,提交历史记录应为:
...---C-F1 feature-1, origin/feature-1
\
D1---D2---...---D20 develop, origin/develop
在git rebase develop
分支上执行feature-1
命令后,提交历史记录将为:
...---C-F1 origin/feature-1
\
D1---D2---...---D20---F1' feature-1
|
develop, origin/develop
因此git将检测到feature-1
分支“ Your branch and 'origin/feature-1' have diverged, and have 20 and 1 different commits each, respectively
”。
如果您强行推动feature-1
分支,并更新feature-1
分支将位于develop
分支的顶部,那么您可以将feature-1
分支合并到{{1} }分支。