2015-09-21 33 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

如果您還沒有提交更改,您的更改從未屬於分支。 –