2

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

我知道我应该在开始对 featureX 进行这些更改之前启动一个新分支,但是无论如何,是否可以将我对 master 分支所做的未提交更改放入 featureX 分支并将 master 恢复到其 pre featureX 状态?

4

2 回答 2

4

创建一个新分支 ( git checkout -b your_new_feature) 应该可以完成这项工作 - 否则,您可以尝试以下操作:

git stash
git checkout -b your_new_feature
git stash apply
于 2012-07-11T15:40:28.883 回答
2

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

git stash
git checkout -b other_branch
git stash apply

git stash 在此处阅读更多信息。


正如我刚刚了解到(并尝试过)的那样,您实际上可以只签出到您的分支,git 会记住哪些文件被更改了。所以

git checkout -b other_branch

应该足够了。


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

git checkout other_branch

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

错误:您对 'whatever' 进行了本地更改;不能切换分支。

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

于 2012-07-11T15:39:33.813 回答