2016-06-21 33 views
7

我并不擅长git,但我一直在使用它几年。最近我注意到一些与存储有关的奇怪行为。它似乎只是部分为我工作。如何让git存储包含尚未上演的新文件?

例如,今天我试图隐藏4个未提交的更改。 1个文件被添加到存储中,其余3个作为未提交的更改保留。尝试了几次,在第一次尝试后,我刚刚得到“没有本地保存更改”,但状态仍显示出3个未提交的更改。

但巧合的是,我发现,当我第一次展示先前不可褪色的变化时,它们将被正常保存。我已经玩过了,这是可重复的:如果所有更改都未提交,只有一个更改被隐藏。如果“问题”变化进行,那么所有变化都将被隐藏(无论“好”变化是否被展示,它都会被隐藏)。

这是一个错误还是我做错了什么?

我使用Git for Windows 2.8.2和Git Extensions 2.48.05。

无论我试图通过Git Extensions GUI还是通过控制台存储更改都无关紧要。

编辑:如果我在存储前进行所有4个更改,当我执行存储弹出时,3个问题更改如前所述进行,但总是存储的好改变未提交。所以隐藏的流行音乐不会将其状态转移到存储之前的状态。这也是可重复的。

+4

也许没有被分级的文件不被Git跟踪?试试'git stash -u' –

+2

@ Jonathan.Brink:这就是答案。不存储的更改是新文件,尚未跟踪。我设置了-u标志,他们没有任何问题地隐藏起来。如果你想做出答案,我会接受它。 –

回答

13

问题似乎是,默认情况下,stash命令将不包含未跟踪文件。

要包括未跟踪文件,使用-u--include-untracked)标志:

git stash -u 

如果--include-未经跟踪选项时,所有未跟踪文件 还藏匿,然后清理与git干净,离开工作 目录在一个非常干净的状态。

+5

正如在[此早期的问题](http://stackoverflow.com/questions/835501/how-do-you-stash-an-untracked-file)的答案中提到的,使用'git stash -u' ** will [永久删除被忽略的文件夹](https://gitlab.com/tortoisegit/tortoisegit/issues/1200)** – phillchill

相关问题