协慌网

登录 贡献 社区

你如何存放未跟踪的文件?

我对文件进行了更改,加上一个新文件,并希望在切换到另一个任务时使用 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-untrackedgit stash save -u来存储未跟踪的文件,而无需暂存它们。

添加( git add )文件并开始跟踪它。然后藏匿。由于文件的全部内容都是新的,因此它们将被隐藏,您可以根据需要对其进行操作。

从 git 1.7.7 开始, git stash接受--include-untracked选项(或 short-hand -u )。要在存储中包含未跟踪的文件,请使用以下任一命令:

git stash --include-untracked
git stash -u

警告,如果您的 gitignore 文件中有任何目录 / * 条目,执行此操作将永久删除您的文件。

将文件添加到索引:

git add path/to/untracked-file
git stash

索引的全部内容以及对现有文件的任何未分级更改都将使其成为存储。