2014-06-26 129 views
0

問題是存儲的更改不會留在分支我藏他們。等分支機構藏匿處將被覆蓋例:Git存儲混淆

我做的:

git checkout iss4 
// made some changes 
    git stash 

和它說:

Saved working directory and index state WIP on iss4: 9dd2345 /.../ 

然後我做的:

git checkout master 

,當我現在做的git stash show,它突然仍然可以看到我的隱藏的變化。所以這使得它覆蓋了其他分支上的所有其他窗口。是的,當我意識到這一點,我已經有了,失去了對工作的一個星期:/(編輯:出來我並沒有失去它,有它在我的藏匿名單=))

我的問題是如何使它能夠一次在多個分支上工作。

回答

5

Stashes不是分支特定的;當他們記住他們應用於哪個HEAD(作爲他們的父母)時,他們在存儲庫中「全局」存在。

更重要的是,雖然藏獒並不僅限於一個。如果你只是做git stash,你可能已經積累了更多數量的st子。你可以使用git stash list看到所有的窗口。如果您想要將特定存儲應用於當前的工作目錄,則可以執行git stash apply [email protected]{N}

0

隱藏是一個臨時存儲信息的地方,它沒有存儲分支特定信息的真正概念。

你提到你已經失去了一個星期的工作價值。我會建議使用stashes作爲例外。大多數情況下,您應該依靠經常向當地分支機構提交。這樣你就可以提交消息和歷史記錄,你也可以合併和挑選你想要的代碼到其他分支。

這是使用分佈式版本控制系統的強大功能之一。