猿问

如何让Git“忘记”一个被跟踪但现在位于.gitignore的文件?

如何让Git“忘记”一个被跟踪但现在位于.gitignore的文件?

有一个文件被跟踪git,但现在该文件在.gitignore列表中。

但是,该文件在git status编辑后会一直显示。你怎么强迫git完全忘掉它?


阿晨1998
浏览 1074回答 4
4回答

慕慕森

.gitignore将阻止未跟踪文件被添加(没有add -f)到由git跟踪的文件集,但是git将继续跟踪已经被跟踪的任何文件。要停止跟踪文件,您需要将其从索引中删除。这可以通过此命令实现。git&nbsp;rm&nbsp;--cached&nbsp;<file>从头修订中删除文件将在下次提交时发生。警告:虽然这不会从本地删除物理文件,但它将在下一次从其他开发人员计算机中删除文件git pull。

墨色风雨

下面的一系列命令将从Git索引中删除所有项目(而不是从工作目录或本地存储库中删除),然后更新Git索引,同时遵守git忽略。PS。Index =缓存第一:git&nbsp;rm&nbsp;-r&nbsp;--cached&nbsp;.&nbsp;git&nbsp;add&nbsp;.然后:git&nbsp;commit&nbsp;-am&nbsp;"Remove&nbsp;ignored&nbsp;files"

慕无忌1623718

我总是使用此命令删除那些未跟踪的文件。单行,Unix风格,干净的输出:git&nbsp;ls-files&nbsp;--ignored&nbsp;--exclude-standard&nbsp;|&nbsp;sed&nbsp;'s/.*/"&"/'&nbsp;|&nbsp;xargs&nbsp;git&nbsp;rm&nbsp;-r&nbsp;--cached它列出了所有被忽略的文件,用引用的行替换每个输出行,而不是处理内部有空格的路径,并将所有内容传递git rm -r --cached给索引中的路径/文件/目录。
随时随地看视频慕课网APP
我要回答