为什么我的所有文件在我完成后都被Git标记为删除;git隐藏流行音乐-q";?

为什么我的所有文件在我完成后都被Git标记为删除;git隐藏流行音乐-q";?,git,pre-commit-hook,post-commit-hook,Git,Pre Commit Hook,Post Commit Hook,我试图在以下线程中实现Git钩子代码(上一篇文章):。我将以下代码放在我的post-commit hookgit-stash-pop-q中,在执行之后,我的项目中的所有文件都被标记为删除(!),我需要恢复所有文件以恢复到正常状态。除此之外,一切正常,我能够修改(在预提交钩子中)已经准备提交的文件,提交本身成功,之后它包含我希望它包含的内容。我可能做错了什么?我是Git初学者,所以请使用简单的术语。问题在于-q 安静的选择似乎有问题 git stash pop表示运行git stash apply

我试图在以下线程中实现Git钩子代码(上一篇文章):。我将以下代码放在我的post-commit hook
git-stash-pop-q
中,在执行之后,我的项目中的所有文件都被标记为删除(!),我需要恢复所有文件以恢复到正常状态。除此之外,一切正常,我能够修改(在预提交钩子中)已经准备提交的文件,提交本身成功,之后它包含我希望它包含的内容。我可能做错了什么?我是Git初学者,所以请使用简单的术语。

问题在于-q

安静的选择似乎有问题


git stash pop
表示运行
git stash apply
(使用相同的标志),然后,如果它表示成功,则运行
git stash drop
(在为应用选择的相同存储上)。
-q
标志只会使操作保持安静,因此这将应用默认的存储,并在成功时删除它,名为
stash@{0}
或just
stash
。如果所有内容都标记为删除,则表明隐藏中的内容是一个空树,其父级与当前树匹配,因此隐藏的父级与隐藏的工作树之间的区别是“删除所有文件”。(如果没有更多信息,很难猜出更多信息。)所以你怀疑是我弄错了?我使用的代码正好来自,也就是说,
git stash save-q--keep index“current wd”
来创建隐藏。或者,
git stash save--keep index
没有创建隐藏,这是它的行为之一;如果是那样的话,你会发现一个无关的藏品。使用
git-stash
很难编写好脚本。也可以查看所有的答案。如果我从
C:\Program Files\git\bin\sh.exe
手动运行
git stash save-q--keep index“current wd”
命令,然后使用TortoiseGit检查新创建的存储,那么它似乎就可以了。如果我将隐藏与我的工作树进行比较,我会看到预期的变化,因此隐藏的创建似乎是成功的。