如何将未暂存的文件移至未跟踪状态?

时间:2015-06-17 14:42:43

标签: git git-add git-stage git-rm

说这就是我在git状态下看到的内容:

Changes not staged for commit:
    modified:   Makefile.in

Untracked files:
   ../node_modules/somepath/inverter_packet.js

我想要做的就是将Makefile.in从“未提交的提交更改”移动到“未跟踪文件”。

我知道我可以忽略git update-index --assume-unchanged Makefile.in的更改,并使用--no-assume-unchanged命令将它们取回,但我宁愿不让这些文件完全看不见,因为我会编辑/偶尔提交它们。

我想从'not staged'部分中删除文件,但在我输入git status时仍会看到它。

或者,如果我可以(最好是简单地)在键入git diff时停止显示非暂存文件的差异(例如,像我的Makefile.in那里),那也很好。

2 个答案:

答案 0 :(得分:3)

  

我想删除“未上演”的文件。部分,但在我输入git status时仍然可以看到它。

您希望他们将移至?真的没有其他地方可以隐藏。

正如您所提到的,这些是跟踪文件,因此您不希望使用git rm将其从回购邮件中删除,这是完全错误的。这里唯一真正的选择是让它们保持不变。他们将会出现在视线之外#34;无论哪种方式,所以问题并没有多大意义。

另一种选择是使用git stash -p仅隐藏该单个文件,但是您将丢失工作副本中的更改,直到您弹回存储,这再次,不是您的样子&# 39;重新开始。

答案 1 :(得分:3)

我遇到过类似的情况。以下是我从 unstaged 到 untracking 所遵循的方法。

  1. git rm [文件名和路径] --cached

现在相应的文件被删除。它使用 --cached 选项将文件保存在本地主机中

  1. git commit(删除的文件)。

再次构建您的项目。如果始终生成文件,您将获得未跟踪的文件。 现在将其添加到 .git/info/exclude 中。

  1. git 状态

您现在正在取消跟踪最初未暂存的文件。

注意:如果文件不是在构建过程中生成的,您将不会在 untracking 中获得这些文件。我的意思是它们完全从 git 跟踪中删除。