Git隐藏单个未跟踪文件?

son*_*gyy 5 git git-stash

题:

我有一些如下所示的已编辑文件,并且还有一些新创建的文件

存储文件列表

现在,我想存放未跟踪的文件(在本例中为db/migrate/20161212071336_add_paranoid_fields.rb,但不存放更改的文件)。

我应该怎么做?

为什么我要隐藏一个未跟踪的文件

首先,我创建了这个文件,然后我意识到我并不需要它(需要删除它才能使我的程序正常工作)。但将来可能会需要。

我搜索过的内容(没有给我答案),以及它们不起作用的原因

Kas*_*erg 10

在 git 版本 2.21.0 (Windows MingW64) 中

你可以做:

git stash push --include-untracked -- db/migrate/20161212071336_add_paranoid_fields.rb
Run Code Online (Sandbox Code Playgroud)

仅指定的文件包含在存储中。您可以提供多个文件(未跟踪和跟踪的文件),您指定的文件将被隐藏并正常检出,其他文件保持原样。


rod*_*igo 4

如果您只有一个未跟踪的文件,您可以执行以下操作:

git add -u
git stash --include-untracked --keep-index
Run Code Online (Sandbox Code Playgroud)

这只会将未跟踪的文件添加到存储中,并将它们从工作目录中删除。

如果您有多个未跟踪的文件,并且您只想将这个文件包含到存储中,那么您将必须执行一次提交,然后是单个文件的存储,然后是重置

git add -u
git commit -m "temp commit"
git add my_file_to_stash
git stash
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)

这里微妙的是,当您稍后恢复存储时,该文件将被添加到索引中。这可能是一件好事,因为它会提醒您该文件很重要。