只重置一个分支

时间:2015-09-21 19:46:51

标签: git git-branch git-checkout

当我重置一个分支时,它也会重置其他分支。例如,假设我已经在featureA工作了一段时间,我需要开始一个新功能。我自然而然地

git branch featureB
git checkout featureB

哦不,我featureA的所有编辑都在这里!所以我做git reset -hard upstream/devgit checkout -- .似乎工作,摆脱所有featureA的东西。但是当我完成并且我想回去时......

git checkout featureA
git status

我在featureA的所有工作现在都已消失。 :(

2 个答案:

答案 0 :(得分:2)

创建featureB分支时,您是否在featureA分支中?如果是这样,那么你所有的git checkout -b featureB dev 内容都是有道理的。

您应该分支您的开发分支,例如

{{1}}

这将创建你的dev分支的分支,而不是featureA分支的延续。

答案 1 :(得分:2)

git reset --hard是一种破坏性操作,如果您不知道自己在做什么,建议不要使用它。

要在检查分支之前保存您的工作,您可以

git stash

当您返回时,您可以使用git stash pop重新申请更改。

如果您还没有提交功能A中的更改而不是丢失。如果您这样做,可以检查git reflog以查找要返回的提交哈希值。