我对文件进行了更改,加上一个新文件,并希望在切换到另一个任务时使用 git stash 将它们删除。但 git stash 本身只会隐藏对现有文件的更改; 新文件仍然存在于我的工作树中,使我未来的工作变得混乱。如何存放这个未跟踪的文件?
2018 年 5 月 17 日更新:
新版本的 git 现在有git stash --all
可以git stash --all
所有文件,包括未跟踪和忽略的文件。
git stash --include-untracked
不再触及被忽略的文件(在 git 2.16.2 上测试)。
原答案如下:
警告,如果您的 gitignore 文件中有任何目录 / * 条目,执行此操作将永久删除您的文件。
从版本 1.7.7 开始,您可以使用git stash --include-untracked
或git stash save -u
来存储未跟踪的文件,而无需暂存它们。
添加( git add
)文件并开始跟踪它。然后藏匿。由于文件的全部内容都是新的,因此它们将被隐藏,您可以根据需要对其进行操作。
从 git 1.7.7 开始, git stash
接受--include-untracked
选项(或 short-hand -u
)。要在存储中包含未跟踪的文件,请使用以下任一命令:
git stash --include-untracked
git stash -u
将文件添加到索引:
git add path/to/untracked-file
git stash
索引的全部内容以及对现有文件的任何未分级更改都将使其成为存储。