问题是隐藏的变化不会停留在分支中我隐藏它们。其他分支机构将被覆盖示例:
我做:
git checkout iss4
// made some changes
git stash
它说:
Saved working directory and index state WIP on iss4: 9dd2345 /.../
然后我做:
git checkout master
当我现在git stash show
时,它突然仍能看到我隐藏的变化。所以这就是这样,它覆盖了我在其他分支上的所有其他存储。是的,当我意识到这一点,我已经失去了大约一个星期的工作:/(编辑:出来我没有失去它,把它全部放在我的藏匿名单中=))
我的问题是如何制作它以便我可以同时在几个分支上工作。
答案 0 :(得分:6)
Stashes不是分支特定的;当他们记住他们应用的HEAD(作为他们的父母)时,他们在存储库中“全局”存在。
更重要的是,藏匿处不仅限于一个。如果你只是git stash
,你可能已经累积了更多的藏匿处。您可以使用git stash list
查看所有藏匿处。如果要将特定存储应用于当前工作目录,则可以git stash apply stash@{N}
然后执行。{/ p>
答案 1 :(得分:0)
存储是一个临时存储信息的地方,它没有存储分支特定信息的真实概念。
你提到你已经失去了一周的工作。我建议使用stashes作为例外。在大多数情况下,您应该依赖于经常提交到本地分支机构。通过这种方式,您将拥有提交消息和历史记录,并且您还可以将您想要的代码合并到其他分支中。
这是使用分布式版本控制系统的强大功能之一。