将来自主分支的更改合并到git远程分支

3
我创建了远程分支名称为REMOTE1,并进行了更改和更新。同样,我的同事们在MASTER上工作并做出了相当多的更改。
现在我需要将remote/MASTER的更改合并到remote/REMOTE1中。
有人能帮我找到在这种情况下最好的工作流程吗?我已经尝试了以下步骤。
git checkout master

git pull

git checkout REMOTE1

git rebase master

有很多合并冲突,我已经解决了它们...

当我尝试使用git status命令时

# On branch REMOTE1
# Your branch and 'origin/REMOTE1' have diverged,
# and have 16 and 10 different commit(s) each, respectively.
#

我不确定它的含义是什么?

然后我尝试将代码PUSH到我的远程分支REMOTE1,但是出现以下错误:

 ! [rejected]        HEAD -> REMOTE1 (non-fast-forward)
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

在任何rebase操作之前

--- A - B - C - D   MASTER
         \
         P - Q - R  REMOTE1

完成上述步骤后,
              MASTER     LOCAL REMOTE1
                |           |
--- A - B - C - D - P - Q - R    
        \
         P - Q - R   REMOTE1
1个回答

1

看起来你正在尝试使用与 origin/REMOTE1 上不同的更改推送 REMOTE1。在执行此操作之前,请尝试拉取 REMOTE1。首先,检查它:

git checkout REMOTE1

现在,在REMOTE1上,从origin拉取更改:

git pull origin REMOTE1

现在你的本地REMOTE1已经与origin/REMOTE1同步。你可以从主分支上变基并推送更改:

git checkout master
git rebase REMOTE1
git checkout REMOTE1
git push origin REMOTE1

我完全按照您的步骤进行了操作。首先进行了新的克隆,然后检出REMOTE1,执行了pull origin REMOTE1,接着进行了rebase master。之后git status显示的分歧与我之前提到的一样。执行git push origin REMOTE1时也出现了相同的错误。 - codingfreak
我稍微修改了一下命令,但这不应该有影响。看起来你在克隆/拉取 REMOTE1 后进行了一些更改?P-Q-R 是否与 origin/REMOTE1 上的相同?在变基之前,你能成功推送吗?变基不会改变此分支,对吧? - amorfis
根据您的新命令,我需要将我的主分支与REMOTE1进行rebase,然后checkout REMOTE1并执行PUSH操作? - codingfreak
这取决于你想要实现什么。据我所了解,你想将本地更改从主分支移动到REMOTE1并推送它们,对吗?如果是这样,是的,你必须将你的更改从主分支rebase到REMOTE1并推送它。 - amorfis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接