有没有更好的方法来进行git stash pop,然后如果我不合并就丢弃隐藏的更改?

时间:2012-02-14 06:57:31

标签: git

有时候我git pop并且得到我不想合并的东西,并且想要扔掉。是否有一种更好的方法可以丢掉那些藏匿的东西:

git stash pop

决定我不想藏匿。

git reset HEAD
git checkout -- .
git stash drop

如果我弹出但不合并藏匿,这就是我放弃它的原因。

3 个答案:

答案 0 :(得分:7)

您不必执行git reset HEADgit checkout --等(这本身就是详细的,因为您只需执行git reset --hard即可获得干净的工作目录)藏。您只需执行git stash drop即可删除存储空间。请注意,当您弹出并且git无法干净地应用时,隐藏不会弹出并且仍然存在。然后你在清理后丢弃它,这是没有必要的。

如果您遇到很多冲突,您可能还想使用branch的{​​{1}}选项。它会在您藏匿的HEAD之外创建一个新的分支。

答案 1 :(得分:1)

有两个藏匿处吗?你如何弹出放弃它? (或者这就是为什么你提到合并 - 它不适用于干净利落?)

在任何情况下,git reset HEAD; git checkout -- .,假设您处于repo的顶层,与git reset --hard完全相同 - 这使得您的索引和工作树与当前提交匹配。 (HEAD永远不必作为git reset的参数;它是默认值。)

如果存储需要丢失,你仍然需要放弃它。

答案 2 :(得分:1)

git reset --hard HEAD

会让你回到干净的工作目录和与HEAD匹配的索引。唯一的问题是,如果你把它藏起来,你将永远失去这个藏匿点。

如果您认为自己可能仍然想要这个存储,请使用“git stash apply”将此存储保留在存储堆栈中。