Git Stash:困境

3
我使用 git stash 时遇到了奇怪的问题。我有两个分支 v0 和 v1,v0 分支与我的主分支以及远程仓库副本同步,而 v1 则是我检出的分支,与 v0 类似,但现在在它上面进行了一些更改。所以现在 v1 与 v0 不同。
现在我想查看 v0 中有什么,所以我在 v1 分支上执行了 git stash,然后切换到了 v0,但是看起来我在 v1 上的所有更改都出现在了 v0 上,因此现在 v0 和 v1 都相互同步,但它们与远程仓库副本不同步。
对于这种情况,是否有任何建议或可能的解决方法?
更新:
根据提供的答案,我有一个相关的问题:git stash pop 在这里的作用是什么,如何与 git stash apply 不同?另外,我们是否有类似于 git stash push 的东西,似乎 git stash 功能类似于堆栈数据结构。
谢谢!

我希望我能说:“因为名字而点赞” ;) - lprsd
2个回答

3

我猜你在v1上有新文件,但你没有将它们添加到git中。git stash只会影响那些已经加入版本库的文件,所以它并没有将你的新文件存储起来,切换分支也不会触及它们。回到v1分支,使用git stash pop命令,将文件添加到git中,再次使用git stash命令即可。


1
使用当前版本的git,您可以使用git stash -u来存储未跟踪的文件,而不是在存储之前将它们添加到git中。 - Max Nanasy

0
  • 没有"git stash push",但我相信你可以通过修改远程仓库的refspecs来实现推送存储。我以前没有见过这样做的例子,但毕竟存储只是以提交的形式保存。
  • popapply加上drop是一样的,如果应用成功,则会删除存储。如果在应用步骤中出现冲突,则不会删除存储。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接