只重置一个分支

reset only one branch

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

git branch featureB
git checkout featureB

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

git checkout featureA
git status

我在 featureA 上的所有工作现在都没有了。 :(

创建featureB分支时是否在featureA分支?如果是这样,那么您所有 featureA 的东西都在那里是有道理的。

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

git checkout -b featureB dev  

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

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

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

git stash

当您 return 时,您可以使用 git stash pop 重新应用您的更改。

如果您还没有提交对功能 A 的更改,那么它就会丢失。如果你这样做了,你可以检查 git reflog 你想要 return 到的提交散列。