Git存储混乱

时间:2014-06-26 14:36:33

标签: 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时,它突然仍能看到我隐藏的变化。所以这就是这样,它覆盖了我在其他分支上的所有其他存储。是的,当我意识到这一点,我已经失去了大约一个星期的工作:/(编辑:出来我没有失去它,把它全部放在我的藏匿名单中=))

我的问题是如何制作它以便我可以同时在几个分支上工作。

2 个答案:

答案 0 :(得分:6)

Stashes不是分支特定的;当他们记住他们应用的HEAD(作为他们的父母)时,他们在存储库中“全局”存在。

更重要的是,藏匿处不仅限于一个。如果你只是git stash,你可能已经累积了更多的藏匿处。您可以使用git stash list查看所有藏匿处。如果要将特定存储应用于当前工作目录,则可以git stash apply stash@{N}然后执行。{/ p>

答案 1 :(得分:0)

存储是一个临时存储信息的地方,它没有存储分支特定信息的真实概念。

你提到你已经失去了一周的工作。我建议使用stashes作为例外。在大多数情况下,您应该依赖于经常提交到本地分支机构。通过这种方式,您将拥有提交消息和历史记录,并且您还可以将您想要的代码合并到其他分支中。

这是使用分布式版本控制系统的强大功能之一。