首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用从branch1到branch2的主站更改来重定位branch2

用从branch1到branch2的主站更改来重定位branch2
EN

Stack Overflow用户
提问于 2016-09-23 13:33:50
回答 1查看 136关注 0票数 0

我在master上有两个分支:branch1branch2。我在branch1上做了一些修改,并对此进行了积极的公关。我还对branch2进行了修改,这些更改已经被检查并合并到master中,分支随后被删除。

我更新了我的本地master,做了一个git fetch -ap和一个git pull,这降低了在branch2中所做的更改。现在,我想用这些更改更新branch1,这样唯一的区别就是我在这个分支上所做的区别。我尝试了git checkout branch1,然后是git rebase master

然而,当我在branch1上做一个branch1时,它说:

代码语言:javascript
复制
On branch branch1
Your branch and 'origin/branch1' have diverged,
and have 3 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

在这里执行git pull将打开一个合并注释对话框。但是现在,当我在branch1上查看我的公关时,它现在包括了branch2的变化作为新的变化。这里发生了什么,我该怎么解决呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-23 17:40:12

(对于这个答案,我假设您已经签出了branch1。如果没有,那么做git checkout branch1。)

当您执行git rebase master时,您将在branch1中重写提交,因为它们现在有了一个新的父级。这就是你的历史可能是这样的:

代码语言:javascript
复制
X--*--Y [master]
 \     \
  \     A'--B'--C' [branch1]  <--
   \                            | (git rebase master)
    A--B--C [origin/branch1] ----

例如,A'具有与A相同的内容,但具有不同的提交哈希,因为它的父级是Y而不是X

由于提交已经更改,您将不得不强制更新origin。在完成重基之后,您应该做:

代码语言:javascript
复制
git push --force-with-lease

但是,由于您已经做了一个git pull后重基,您需要首先修复它。例如:

代码语言:javascript
复制
git reset --hard C'

或者:

代码语言:javascript
复制
git reset --hard HEAD^

这将从branch1中删除合并提交,您可以强制推送(如前所述)。首先,要确保正确重置分支,请执行以下操作:

代码语言:javascript
复制
git log --oneline --decorate master..HEAD

该命令的输出应该显示应该在branch1中的所有提交,并且只有那些提交。

(旁白:如果此时执行git status,您可能会看到如下一些输出:

代码语言:javascript
复制
On branch branch1
Your branch is behind 'origin/branch1' by 2 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

您可以安全地忽略此警告,因为其中一个提交是合并提交,另一个是原始错误消息中的1 different commit。)

如前所述,在这一点上,您应该:

代码语言:javascript
复制
git push --force-with-lease

现在,远程branch1将具有与本地branch1相同的提交。

强制性的警告:由于重基重写历史,这对从事此分支工作的其他任何人来说都是危险的/破坏性的。确保你清楚地告诉了你和你合作的人做了什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39662147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档