2015-09-21 36 views
1

当我重置一个分支时,它也会重置其他分支。例如,假设我一直在研究featureA一段时间,我需要开始一个新功能。所以很自然我做仅重置一个分支

git branch featureB 
git checkout featureB 

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

git checkout featureA 
git status 

所有我对featureA现在的工作已经一去不复返了。 :(

回答

2

您在featureA分支当您创建featureB分支?如果是的话是有道理的,你的所有东西featureA有。

你应该岔开您的Dev分支如

git checkout -b featureB dev 

这将创建您的分支关闭您的开发分支,而不是继续featureA分支。

+0

啊,这就是我需要的,谢谢! –

2

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

要检查你分支,你可以做

git stash 

当你回到你可以git stash pop重新更改之前保存工作。

如果您未提交对功能A的更改,则会丢失该功能。如果你这样做,你可以检查git reflog作为你想要返回的提交散列。

+0

我知道它具有破坏性,但我只是感到惊讶,它现在在分支之外。 –

+1

如果您还没有提交更改,您的更改从未属于分支。 –