我需要快速切换git分支,因此运行了git stash
,但由于其中一个文件需要编辑而再次运行了它。
所以我运行了git stash
两次,现在准备回到编辑我的文件。我运行了git stash apply
,但我并不确定我存储的所有文件都已经被还原,有没有什么办法可以检查一下?
当我运行git stash show
时,只看到了我两次git stash中的最后一个。
是否有办法显示所有的git stashes
?
您可以通过以下命令获取所有stash的列表:
git stash list
stash@{0}: WIP on dev: 1f6f8bb Commit message A
stash@{1}: WIP on master: 50cf63b Commit message B
git stash pop
两次。与git stash apply
相反,pop
应用并删除最新的存储库。git stash show stash@{1}
git stash apply stash@{1}
git stash pop
,因为你希望两个暂存内容都在同一个提交中,但是在第二次执行 git stash pop
时遇到了 "error: Your local changes to the following files would be overwritten by merge:" 的错误提示,那么你可以按照以下步骤操作:1)执行 git stash pop
;2)执行 git add .
;3)再次执行 git stash pop
。 - gabe我遇到了这种情况,我执行了两个stash操作,并使用 git stash pop 只取出了最后一个stash。因此我进行了以下操作:
git stash list
git stash pop stash@{1}
这个命令找回了我第一个藏匿区,我能够看到所有之前的更改!
>>我并不确定我存储的所有文件都已经被取消存储了。有什么办法可以检查吗?
我认为您想要做的是将存储与您的本地工作树进行比较。您可以在存储命令上加上 -p 开关,就可以了:
git stash show -p
如果你想要特定的一个,只需使用它在stash列表中的git stash name或id:
git stash show -p stash@{3}
如果你真的对推动你的git技能感兴趣,你可以尝试一下差异(diff)。为了查看存储区和主分支HEAD中的差异,可以使用以下差异:
git diff stash@ master
git stash list --stat
但我认为简单的答案就是正确的答案。只需使用 -p 开关,你很可能会看到你存储的代码片段是否已经被还原。
git stash show -p stash@{3}
git stash list
的意思是列出所有暂存的修改。如果你已经暂存了两次,那么需要执行两次git stash pop
来恢复这些修改。 - Felix Kling