4

假设这就是我在 git status 中看到的内容:

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,但我宁愿不要让这些文件完全看不见,因为我偶尔会编辑/提交它们。

我想从“未暂存”部分中删除文件,但在我输入git status.

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

4

2 回答 2

3

我遇到了类似的情况。这是我遵循的使未上演到未跟踪的内容。

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

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

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

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

  1. 状态

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

注意:如果文件不是在构建期间生成的,您将无法取消跟踪文件。我的意思是它们完全从 git 跟踪中删除。

于 2021-03-12T04:45:49.623 回答
2

我想从“未暂存”部分中删除文件,但是当我输入 git status 时仍然可以看到它。

你希望他们搬到哪里?真的没有其他地方可以躲。

正如您所提到的,这些是跟踪文件,因此您不想将它们从 repo 中删除git rm,那将是完全错误的。这里唯一真正的选择是让它们保持不变。无论哪种方式,它们都会“不在视野范围内”,因此这个问题并没有多大意义。

另一种选择是仅使用该单个文件来存储该文件,git stash -p但随后您将丢失工作副本中的更改,直到您将存储重新弹出,这又不是您想要的。

于 2015-06-17T16:46:48.083 回答