从主分支更新开发分支,而不会丢失开发中的任何更改

时间:2019-07-23 08:34:24

标签: git github git-branch

嗨,我有一个基于master分支的develop分支。 我在开发分支中进行更改。 现在,我的问题是是否要更新master分支,如何在不丢失对develop分支所做更改的情况下基于master分支升级develop分支?

3 个答案:

答案 0 :(得分:2)

取决于您所说的“升级”,但是我假设您希望您的develop分支具有提交主机。

因此,您需要一个git mergegit rebase

# merge master into develop
git checkout develop
git merge master

# rebase develop on top of master
git checkout develop
git rebase master

或者,如果您的主服务器在服务器上,并且您想从源服务器获取更改,则必须执行相同的操作,但是要使用pull命令。

git checkout develop
git pull #or git pull --rebase

请注意,您当前的工作目录必须干净。否则,您必须提交(或存储)更改,以便从主那里获取一切。

答案 1 :(得分:1)

我建议您使用变基解决方案(请参阅mereg vs rebase)。假设您在您的个人开发分支中(没有人使用该分支)

首先保存您当前的开发人员(位于):

git add <all files you created> 
# -am is ; a: all added an modified    m: message follows
git commit -am "<comment your commit>"    
git push origin <my-dev-branch>

从这时起您不能放弃任何东西,因为遥控器上有副本

然后使用远程信息更新本地

git fetch --all
git rebase master

这时您可能不得不处理一些合并冲突

git mergetool

检查this设置好的合并工具

一旦解决了所有合并冲突,并重新测试了代码,您将再次推送到服务器强制(-f)分支更新

git push -f origin <my-dev-branch>

答案 2 :(得分:0)

使用rebase进行开发和拉动。

git checkout develop
git pull --rebase origin master