如何让Git“忘记”一个被跟踪但现在位于.gitignore的文件?有一个文件被跟踪git,但现在该文件在.gitignore列表中。但是,该文件在git status编辑后会一直显示。你怎么强迫git完全忘掉它?
4 回答
![?](http://img1.sycdn.imooc.com/5458655200013d9802200220-100-100.jpg)
慕慕森
TA贡献1856条经验 获得超17个赞
.gitignore
将阻止未跟踪文件被添加(没有add -f
)到由git跟踪的文件集,但是git将继续跟踪已经被跟踪的任何文件。
要停止跟踪文件,您需要将其从索引中删除。这可以通过此命令实现。
git rm --cached <file>
从头修订中删除文件将在下次提交时发生。
警告:虽然这不会从本地删除物理文件,但它将在下一次从其他开发人员计算机中删除文件git pull
。
![?](http://img1.sycdn.imooc.com/54585094000184e602200220-100-100.jpg)
墨色风雨
TA贡献1853条经验 获得超6个赞
下面的一系列命令将从Git索引中删除所有项目(而不是从工作目录或本地存储库中删除),然后更新Git索引,同时遵守git忽略。PS。Index =缓存
第一:
git rm -r --cached . git add .
然后:
git commit -am "Remove ignored files"
![?](http://img1.sycdn.imooc.com/5458620000018a2602200220-100-100.jpg)
慕无忌1623718
TA贡献1744条经验 获得超4个赞
我总是使用此命令删除那些未跟踪的文件。单行,Unix风格,干净的输出:
git ls-files --ignored --exclude-standard | sed 's/.*/"&"/' | xargs git rm -r --cached
它列出了所有被忽略的文件,用引用的行替换每个输出行,而不是处理内部有空格的路径,并将所有内容传递git rm -r --cached
给索引中的路径/文件/目录。
- 4 回答
- 0 关注
- 1073 浏览
添加回答
举报
0/150
提交
取消