>[info] 先声明一点,如果要同时删除本地的和github上的文件,直接删除本地的再push就行了,比较简单。这里的要求是不能删除本地的文件,而要删除github里,就是网页上的文件。 ## 业务场景 在为生存环境中,不小心把上传的“资源”文件添加进git版本库中了(这些资源文件会不断增加,而且容量往往比较大,不适合加入版本管理)。现在想要将其从版本库中删除,而不删除服务器上面的文件。 其实质就是删除缓冲区里的文件,再提交给服务器端。 ## 处理办法 1. 首先进入要删除的文件夹或文件的根目录下(版本仓库所在目录),如:/home/wwwroot/myweb/ `cd /home/wwwroot/myweb/` 2. 执行下面的语句 "Public/uploads/" 是相对于本地根目录下的文件夹/文件 路径 ~~~ git rm -r --cached Public/uploads/ git commit -m 'Remove the now ignored directory "Public/uploads/"' git push origin master ~~~ 3. 由于“Public/uploads/”是资源存储目录。我们不希望将其加入版本库。所以将其加入到“”文档中: echo '/Public/uploads/' >> .gitignore > 另外`git pull --rebase origin master`这句挺有用的,记录一下。这句的意思是:把源程git服务器上最新的文件下载下来。