[英]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.