我不是git的专家,但我已经使用了几年了。最近我发现了一些与藏匿有关的奇怪行为。它似乎只对我有用。
例如今天我试图隐藏4个未提交的更改。 1个文件被添加到存储,其余3个保留为未提交的更改。尝试了几次,在第一次尝试之后,我刚刚得到"没有本地更改保存"但状态仍显示3个未提交的更改。
然而,巧合的是,我发现当我第一次进行先前无法改变的变化时,它们将被正常隐藏。我已经玩了,这是可重复的:如果所有更改都未提交,则只保留一个更改。如果"问题"更改将被暂存,然后所有更改都被隐藏(无论"良好"更改是否已暂停,它将始终存储)。
这是一个错误还是我做错了什么?
我使用Git for Windows 2.8.2和Git Extensions 2.48.05。
我是否尝试通过Git Extensions GUI或通过控制台存储更改并不重要。
编辑:如果我在存储之前暂存所有4个更改,当我进行存储弹出时,3个问题更改将像以前一样暂存,但是总是存储的良好更改是未提交的。因此,存储弹出不会将状态转换为存储之前的状态。这也是可重复的。
答案 0 :(得分:29)
问题似乎是默认情况下stash
命令不包含未跟踪的文件。
要包含未跟踪的文件,请使用-u
(--include-untracked
)标记:
git stash -u
如果使用 - include-untracked 选项,则所有未跟踪的文件都是 也被藏起来然后用git清理干净,留下工作 目录处于非常干净的状态。