如何将远程分支合并到本地分支?

时间:2018-07-12 02:10:38

标签: git github merge

我们的项目有一个开发分支。我根据develop分支创建了一个错误修复分支,并更改了一个文件a.java。而且我知道在我修复错误时,其他人更改了a.java并合并以开发分支。

现在,我已经修复了该错误,我想合并我的代码以开发分支,但是在此之前,我想将更改(因为其他人也更改了a.java)到我的本地分支进行测试如果行得通,对吗? 我该怎么办?

首先,我通过“ git pull ”拉出了所有代码,并且进入了错误修复分支。 然后运行“ git merge development ”,则输出为空。然后我' git merge origin / develop '。它在错误下方输出。

Updating 46f689b..3011608
error: Your local changes to the following files would be overwritten by merge:
        projectA/a.java
Please commit your changes or stash them before you merge.
Aborting

如何将developer分支合并到我的工作目录中?

4 个答案:

答案 0 :(得分:2)

通常在这种情况下,这就是我喜欢做的事

git stash # Stash your local changes
git pull  # Update code
git stash apply # Merge your local changes

现在,为澄清起见,如果需要同步另一个分支,可以在git pull之前切换分支。从那里可以回到错误修复分支,并运行git stash applydevelop分支合并。

答案 1 :(得分:1)

因为您对该文件进行了一些更改

Please commit your changes or stash them before you merge.

只需遵循以下步骤:

# save current work state
git stash
# merge from develop
git merge origin/develop
# recover current work state (get the last item of stash)
git stash pop

答案 2 :(得分:1)

由于您尚未将本地提交推送到bug分支,因此您需要在更新的(由其他开发人员)origin/bug分支之上对它们进行变基

为此,请确保您拥有set first the configuration

git --global config pull.rebase true
git --global config rebase.autoStash true

(在任何文件夹中只能执行一次)

然后,当您在当前分支中时,可以通过以下简单的方式包含其他贡献:

git pull.

现在,确保所有内容都已提交,并且:

git checkout develop
git pull

最后,合并开发

git checkout bug
git merge develop

答案 3 :(得分:0)

在合并其他更改之前,您需要将更改提交或存储到projectA / a.java。

提交示例:

$ git add projectA/a.java
$ git commit -m "my change message"
$ git pull origin/develop

隐藏示例:

$ git stash
$ git pull origin/develop
$ git stash apply