git stash drop vs git reset

Ice*_*unk 5 git

当我在分支上工作并且想要完全删除所有未进行的变更时,我倾向于使用git stash然后git stash drop。假设我没有任何阶段性的更改,那么和之间有功能上的区别git reset HEAD吗?

Aru*_*run 5

简单回答你的问题。

git stash删除所有跟踪的文件,这些文件git stash pop只能用于最近的存储。如果您认为您已经多次使用 git stash 检查git stash list

关于git stash drop它的问题在这里得到了很好的解释git stash pop 和 git stash apply 之间的区别

如果你也想隐藏未跟踪的文件,你可以使用 git stash --all

另一方面git reset HEAD是完全不同的操作。如果您git commit至少没有在本地机器上执行并完成了git reset所有暂存文件将再次取消暂存。意味着如果您执行 agit add file.test并执行 agit reset HEAD它将取消所有文件的暂存。指向本地机器中的 HEAD 提交。因此,在处理此命令之前请三思。

这不是一个危险的命令,但您可以使用 来查看差异git reflog,这有助于了解 HEAD 在您的本地和原点中指向的位置。


Ale*_*iev 3

man git-stash

将本地修改保存到新的存储中,然后运行 ​​git reset --hard 来恢复它们。

没有什么区别,因为它的作用完全相同。