gitignore在强制添加一次后继续跟踪文件

use*_*167 6 git gitignore

我有一个.gitignore中提到的文件,但我添加它是git add -f因为我只想添加它一次然后像往常一样忽略它.

但是,现在默认情况下会对其进行跟踪.我该如何撤消这个?

Dom*_*rtl 8

不完全确定您要查找的内容,但您可以删除要在以后提交时忽略的文件

git rm --cached filename
Run Code Online (Sandbox Code Playgroud)

请注意,在将规则添加到此文件以忽略它之前,git不会忽略已跟踪的文件.在这种情况下,文件必须是未跟踪的,通常使用git rm --cached filename

信息:https://help.github.com/articles/ignoring-files

或者你可以告诉git它忽略了文件的变化

git update-index --assume-unchanged filename
Run Code Online (Sandbox Code Playgroud)

并用它来撤消它

git update-index --no-assume-unchanged filename
Run Code Online (Sandbox Code Playgroud)

列出所有假设未更改的文件

git ls-files -v|grep '^h'
Run Code Online (Sandbox Code Playgroud)

信息:如何.gitignore并删除已提交的文件而不影响其他工作副本?

但是请记住,假设 - 在我看来是不变的,不符合git的哲学,这个命令只会忽略它在你的机器上所做的更改.其他人仍然可以覆盖它.

在大多数情况下,您将其用于配置文件.您可以采取的措施是避免使用此选项,将其保留在.gitignore中,并向README添加设置描述或创建一个创建这些文件的小安装脚本.

  • "不完全确定你在寻找什么" - 只是为了其他任何可能读到这个内容的上下文:如果你想要一个配置文件,其中包含一个用户可以下载但不提交敏感信息的空白模板,这将非常有用.至少,这就是为什么我来到这里寻找理解如何在git中执行此操作的原因之一. (2认同)

ale*_*lex 1

您可以使用...删除它

git rm --cached file
Run Code Online (Sandbox Code Playgroud)

然后提交。