我把以前由 Git 跟踪的文件放在.gitignore 列表中. 但是,文件在编辑后仍然显示在 git 状态。


当前回答

如果你不想使用 CLI 并在 Windows 上工作,一个非常简单的解决方案是使用 TortoiseGit. 它在菜单中有“删除(保持本地)”操作,它工作得很好。

其他回答

BFG 专门用于从 Git 存储库中删除不需要的数据,如大文件或密码,因此它有一个简单的旗帜,将删除任何大历史文件(不属于您的当前文件):‘--strip-blobs-bigger-than’

java -jar bfg.jar --strip-blobs-bigger-than 100M

如果你想按名称指定文件,你也可以这样做:

java -jar bfg.jar --delete-files *.mp4

BFG 比 git 过滤器行业快 10 至 1000 倍,通常更容易使用 - 查看完整使用指示和示例,以获取更多详细信息。

来源:库存大小减少

如果您创建了 gitignore 文件,使用命令如 echo node_modules >>.gitignore,它不会工作。

窗口终端存储文件在 UCS-2 LE BOM 和 git 似乎不接受它。

您可以通过在笔记本中打开并使用 UTF-8 编码重新存储。

此分類上一篇

它现在工作。

我认为他们需要纠正这一点,因为做echo“filetoignore” >>.gitignore实际上看起来非常有用

我知道这个答案已经迟到了很多年,但是我决定我想在注意到可能有不同的答案后做出贡献,取决于用户想要的结果。

如何强迫Git完全忘记这一点?

这取决于下列哪个是所需的结果:

停止跟踪文件并将其从存储库中删除,或停止跟踪文件,而不会从存储库中删除(可能其他合作伙伴可以下载)

因为(一),解决方案就像上面的马特的答案一样;因为(二),请参见康斯坦丁的答案。

来源: https://stackabuse.com/git-stop-tracking-file-after-adding-to-gitignore/

git ls-files -c --ignored --exclude-standard -z | xargs -0 git rm --cached
git commit -am "Remove ignored files"

这取消了被忽略的文件列表,从指数中删除它们,并执行了变更。

特别是对于基于 IDE 的文件,我使用以下文件:

例如,对于 slnx.sqlite 文件,我刚刚完全解除它如下:

git rm {PATH_OF_THE_FILE}/slnx.sqlite -f
git commit -m "remove slnx.sqlite"

请记住,其中一些文件存储一些本地用户设置和项目偏好(类似于您打开的文件)。所以每次您浏览或在您的 IDE 中进行一些更改,该文件会被更改,因此它会检查并显示为未订购的更改。