我最近开始对我的主分支进行一些更改以添加 featureX。我创建了 1 个新文件并编辑了 6 个其他文件。我没有提交任何更改。目前,我想在一个单独的分支上处理 featureX 并保持 master 不变,直到我确定 featureX 正常工作。
我知道我应该在开始对 featureX 进行这些更改之前启动一个新分支,但是无论如何,是否可以将我对 master 分支所做的未提交更改放入 featureX 分支并将 master 恢复到其 pre featureX 状态?
我最近开始对我的主分支进行一些更改以添加 featureX。我创建了 1 个新文件并编辑了 6 个其他文件。我没有提交任何更改。目前,我想在一个单独的分支上处理 featureX 并保持 master 不变,直到我确定 featureX 正常工作。
我知道我应该在开始对 featureX 进行这些更改之前启动一个新分支,但是无论如何,是否可以将我对 master 分支所做的未提交更改放入 featureX 分支并将 master 恢复到其 pre featureX 状态?
创建一个新分支 ( git checkout -b your_new_feature
) 应该可以完成这项工作 - 否则,您可以尝试以下操作:
git stash
git checkout -b your_new_feature
git stash apply
您需要的是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
,解决可能的冲突。