只重置一个分支
reset only one branch
当我重置一个分支时,它也在重置其他分支。例如,假设我已经在 featureA
上工作了一段时间,我需要开始一项新功能。所以我自然会做
git branch featureB
git checkout featureB
哦不,我在 featureA
中所做的所有编辑都在这里!所以我做 git reset -hard upstream/dev
或 git 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 到的提交散列。
当我重置一个分支时,它也在重置其他分支。例如,假设我已经在 featureA
上工作了一段时间,我需要开始一项新功能。所以我自然会做
git branch featureB
git checkout featureB
哦不,我在 featureA
中所做的所有编辑都在这里!所以我做 git reset -hard upstream/dev
或 git 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 到的提交散列。