0

我正在处理一个本地分支,它是 master 的副本,称为 mybranch。我对要合并到 master 的分支进行了更改。但是,在最终将分支合并回 master 之前,我需要将 master 的更新合并到 mybranch 中。

我想通过一个 rebase 来完成,并且第一次有人帮助我,但并没有真正的意义。我尝试了以下方法,但我记得在我的 intellij IDE 中突出显示 mybranch 和 master 中不同的文件,因为文件本身中的差异被标记为 >>>>HEAD,ETC,。所以我可以更新到正确的更改,但我没有看到。

这是我到目前为止所尝试的:

$ git checkout master 
$ git pull  // get latest from master
$ git checkout mybranch
$ git rebase master     // get masters updates and integrate them with mine 

在这一点上不确定我在哪里......我只想用 master 更改更新我的本地分支(并且应该存在我希望解决的冲突然后推送到我的分支然后将所有内容推送回 master)。

4

2 回答 2

2

这是您描述的一个非常常见的工作流程。这是更详细说明的链接。

执行'git rebase master'后,您应该在当前分支中拥有来自 master 的最新更改(您可能会也可能不会遇到合并冲突)。如果存在冲突,git 将暂停 rebase 并提示您解决它们,然后在使用 ' git add <file(s)>' 恢复 rebase 之前执行 ' git rebase --continue'。

虽然这超出了您的问题范围,但我建议您查看链接或搜索有关交互式变基的信息。它用于保持您的提交历史非常干净和有条理。

于 2013-10-18T17:31:34.663 回答
1

如果您想用您缺少的更改更新主服务器,则上述内容将您在“旧主服务器”上方的 mybranch 中所做的更改应用到“刷新主服务器”之上:

  git checkout master
  git rebase mybranch

这会将 master 快速转发到您的新(基于 master)mybranch 的 HEAD。现在 master 和 mybranch 应该引用相同的 SHA1,它们是 origin/master 的孩子。此时,如果您在 git pull 更新后开始在 master 上工作,您将在历史树中的同一位置。

  git push

应该注意打破日常构建;)

于 2013-10-18T17:08:57.403 回答