将未经更改的更改提交给另一个分支

时间:2015-06-24 18:08:11

标签: git git-merge atlassian-sourcetree

我正在使用sourcetree,并且只在本地克隆了主分支。所以我一直在master分支上做所有的更改,最后我在本地机器上有很多未经修改的更改。

但是现在我决定不把它们推到主分支,而是在我的项目中开发分支 - 相当老的分支。它存在于原点,但不存在于本地。

我怎样才能首先合并master来开发,以便它们是相同的,然后提交并推送我的更改以开发分支,让master保持不变?

我一直在想:

git checkout origin/develop;
git merge master;

好的,这可以解决我认为的第一个问题,但是我的本地更改不会被看到 - 源代码树将它们视为我认为的主要更改。

我要求这个,因为我不想搞乱这个项目中的任何事情。

那么 - 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

git checkoutgit merge之前,运行

git stash

将未提交的更改保存到Git存储,并将其从工作树中删除。然后,在合并之后,运行

git stash apply
git stash drop

将您已隐藏的更改应用到工作树(现在位于develop分支上)并从存储中删除更改。您可以运行git stash pop,它结合了applydrop,但这有一些棘手的行为(当遇到冲突等)时,通常只会运行applydrop分开。