我对一个文件进行了更改,再加上一个新文件,我想在切换到另一个任务时使用git stash将它们保存起来。但是git stash本身只存储对现有文件的更改;新文件仍保留在我的工作树中,打乱了我未来的工作。我如何保存这个未跟踪的文件?


当前回答

将文件添加到索引:

git add path/to/untracked-file
git stash

索引的全部内容,加上对现有文件的任何未标记的更改,都将被放入存储库。

其他回答

将文件添加到索引:

git add path/to/untracked-file
git stash

索引的全部内容,加上对现有文件的任何未标记的更改,都将被放入存储库。

如果您想隐藏未跟踪的文件,但保留索引文件(例如,您要提交的文件),只需在-u中添加-k(保留索引)选项

git stash -u -k

2.35版中的新增功能

git stash的新的暂存模式使您可以轻松地将暂存区中已有的东西存放起来,而无需其他任何东西。你可以把它想象成gitcommit(它只写阶段性的更改),但它不是创建一个新的commit,而是将一个新条目写到存储中。然后,当你准备好了,你可以恢复你的更改(使用git stash pop)并继续工作。

git add -A
git stash --staged

要隐藏包含未跟踪文件(尤其是.gitignore中的文件)的工作目录,您可能需要使用以下cmd:

git stash --include-untracked

或者,您可以使用缩写-u来代替--include untracked,或者简单地使用git stash--all来存储所有文件,包括未跟踪和忽略的文件。2018年,这个数字发生了变化,所以请确保您的数字是最新的。


警告:似乎存在(或曾经存在)被忽略目录的内容可能被永久删除的情况。有关详细信息,请参阅此存档网站。

您只需使用以下命令即可完成

git stash save --include-untracked

or

git stash save -u

有关git stash的更多信息,请访问此帖子(单击此处)