[英]Git stashing confusion
問題是隱藏的更改不會保留在我隱藏的分支中。 其他分支存儲將被覆蓋示例:
我做:
git checkout iss4
// made some changes
git stash
它說:
Saved working directory and index state WIP on iss4: 9dd2345 /.../
然后我做:
git checkout master
當我現在執行git stash show
,它仍然突然可以看到我的隱藏更改。 這樣就可以覆蓋其他分支上的所有其他存儲。 是的,當我意識到這一點時,我已經失去了大約一個星期的工作:/( 編輯:出來,我沒有失去它,一切都在我的藏匿處列表中=))
我的問題是如何做到這一點,以便我可以一次在多個分支機構工作。
散劑不是特定於分支的; 當他們記住應用(作為其父對象)哪個HEAD時,它們“全局”存在於存儲庫中。
但是,更重要的是,存儲不限於單個存儲。 如果您只是執行git stash
,則可能是您積累了大量的git stash
。 您可以使用git stash list
查看所有git stash list
。 如果要對當前工作目錄應用特定的存儲,則只需執行git stash apply stash@{N}
。
存放區是用於臨時存儲信息的單個位置,它沒有存儲分支特定信息的真實概念。
您提到您失去了一個星期的工作。 我建議使用存儲作為例外。 在大多數情況下,您應該依賴於頻繁提交到本地分支。 這樣,您將擁有提交消息和歷史記錄,還可以將所需的代碼合並和挑選代碼到其他分支中。
這是使用分布式版本控制系統的強大功能之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.