当我重置一个分支时,它也会重置其他分支。例如,假设我已经在featureA
工作了一段时间,我需要开始一个新功能。我自然而然地
git branch featureB
git checkout featureB
哦不,我featureA
的所有编辑都在这里!所以我做git reset -hard upstream/dev
或git checkout -- .
似乎工作,摆脱所有featureA
的东西。但是当我完成并且我想回去时......
git checkout featureA
git status
我在featureA
的所有工作现在都已消失。 :(
答案 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
以查找要返回的提交哈希值。