我正在使用sourcetree,并且只在本地克隆了主分支。所以我一直在master分支上做所有的更改,最后我在本地机器上有很多未经修改的更改。
但是现在我决定不把它们推到主分支,而是在我的项目中开发分支 - 相当老的分支。它存在于原点,但不存在于本地。
我怎样才能首先合并master来开发,以便它们是相同的,然后提交并推送我的更改以开发分支,让master保持不变?
我一直在想:
git checkout origin/develop;
git merge master;
好的,这可以解决我认为的第一个问题,但是我的本地更改不会被看到 - 源代码树将它们视为我认为的主要更改。
我要求这个,因为我不想搞乱这个项目中的任何事情。
那么 - 有什么建议吗?
答案 0 :(得分:1)
在git checkout
和git merge
之前,运行
git stash
将未提交的更改保存到Git存储,并将其从工作树中删除。然后,在合并之后,运行
git stash apply
git stash drop
将您已隐藏的更改应用到工作树(现在位于develop
分支上)并从存储中删除更改。您可以运行git stash pop
,它结合了apply
和drop
,但这有一些棘手的行为(当遇到冲突等)时,通常只会运行apply
和drop
分开。