Git 从主分支更新develop分支,而不丢失develop中的任何更改

Git 从主分支更新develop分支,而不丢失develop中的任何更改,git,github,git-branch,Git,Github,Git Branch,嗨,我有一个基于master branch的开发分支。 我在开发部门进行更改。 现在,我的问题是,如果要更新主分支,如何基于主分支升级开发分支,而不丢失对开发分支所做的更改?取决于您所说的“升级”,但我假设您希望您的开发分支拥有主分支 因此,您需要一个git合并或git重基 # merge master into develop git checkout develop git merge master 或 或者,如果您的主机位于服务器上,并且您希望从源站获取更改,则您可以执行相同的操作,但需

嗨,我有一个基于master branch的开发分支。 我在开发部门进行更改。 现在,我的问题是,如果要更新主分支,如何基于主分支升级开发分支,而不丢失对开发分支所做的更改?

取决于您所说的“升级”,但我假设您希望您的开发分支拥有主分支

因此,您需要一个
git合并
git重基

# merge master into develop
git checkout develop
git merge master

或者,如果您的主机位于服务器上,并且您希望从源站获取更改,则您可以执行相同的操作,但需要使用
pull
命令

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

注意当前工作目录必须是干净的。否则,您必须提交(或隐藏)更改,以便从master获取内容。

我建议您使用rebase解决方案(请参阅)。假设您在个人开发分支(没有其他人使用此分支)

首先保存当前开发(在中):

此时,您可能需要处理一些合并冲突

git mergetool
检查是否设置了良好的合并工具

解决所有合并冲突并重新测试代码后,您将再次推送到服务器,强制执行分支更新

git push -f origin <my-dev-branch>
git推送-f原点

使用rebase进行开发和提取

git checkout develop
git pull --rebase origin master

使用
git pull
git pull--rebase
。如果Git不让你拉,那么你必须先隐藏或提交你的更改。”#在开发的基础上重新开发master”->我觉得它更像是“在master的基础上重新开发”@jo#oop我错了,你完全正确。我将编辑答案请小心使用“push-f”,因为这将破坏使用该存储库的所有其他人的分支。@jo:我知道:)这就是为什么您链接的文档声明:“一旦你明白了什么是重定基调,最重要的是要学会什么时候不做。git rebase的黄金法则是永远不要在公共分支上使用它。”()@creinig ok明白你的意思了,所以我应该添加一些类似“假设你在个人开发分支上,那么我称之为
git mergetool
git push -f origin <my-dev-branch>
git checkout develop
git pull --rebase origin master