我们的项目有一个开发分支。我根据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分支合并到我的工作目录中?
答案 0 :(得分:2)
通常在这种情况下,这就是我喜欢做的事
git stash # Stash your local changes
git pull # Update code
git stash apply # Merge your local changes
现在,为澄清起见,如果需要同步另一个分支,可以在git pull
之前切换分支。从那里可以回到错误修复分支,并运行git stash apply
与develop
分支合并。
答案 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