将未提交的更改从master移动到branch

时间:2012-07-11 15:34:49

标签: git

我最近开始对我的主分支进行一些更改以添加featureX。我创建了1个新文件,并编辑了6个其他文件。我没有做出任何改变。暂时,我想在一个单独的分支上使用featureX,并保持master不变,直到我确信featureX正常工作。

我知道在开始对featureX进行这些更改之前我应该​​已经启动了一个新的分支,但无论如何都要将我对主分支进行的未提交更改转换为featureX分支并将主服务器恢复为其预功能X状态?

2 个答案:

答案 0 :(得分:4)

创建一个新分支(git checkout -b your_new_feature)应该可以完成这项任务 - 否则,您可以尝试这样做:

git stash
git checkout -b your_new_feature
git stash apply

答案 1 :(得分:2)

您需要的是stash远离更改,然后将其应用到其他地方:

git stash
git checkout -b other_branch
git stash apply

详情阅读git stash here


当我只是学习(并尝试过)时,你实际上只能结帐到你的分支机构,git会记住哪些文件被更改了。所以

git checkout -b other_branch

应该足够了。


注意:学习git stash也很重要。在这种情况下,没有问题。但是,如果other_branch已存在,则可能有自己的更改,因此可能存在合并冲突。在这种情况下,只需写

git checkout other_branch

可能会失败并显示如下消息:

  

错误:您对“其他”进行了本地更改;不能切换分支。

在这种情况下,您应该使用上述方法并在git stash apply之后解决可能的冲突。