我继承了一个通过GitHub更新和分发的PHP Weather Template网站。以前的所有者在开始时没有制作足够的.gitignore文件,因此git跟踪的许多文件不应该这样做。这些文件包括使用用户数据,json数据文件和settings.php文件更新的.csv数据库。在将文件列表添加到.gitignore之后,我的问题现在是使这些文件不被用户使用的所有远程克隆上的git跟踪的最佳方法。我的第一个念头是做一个git rm --cached <files>
,但是这会从所有人中删除文件,从而删除所有人的数据。
接下来,我想警告人们备份文件,并且一周内我会发出git rm --cached
命令,但是对于未知但数量众多的用户,我无法保证所有人都会看到该消息。在论坛为时已晚之前,再加上肯定会有一些用户甚至在不看论坛的情况下进行git pull
。
由于与上述相同的原因,每个用户问题git rm --cached
可能也不起作用。
最终,有什么方法可以使git停止在模板的每个远程副本上停止跟踪这些文件,而无需依赖任何用户交互。一个简单的从GitHub删除但不从未完成的副本命令删除就好了。
答案 0 :(得分:2)
无法执行您想要的操作。 Github不是文件托管,它是git存储库托管,它显示您存储库的内容。要从Github中删除文件,您必须从存储库中删除文件(此顺序不是必需的:您可以使用Web界面直接从Github中删除文件,但随后您必须进行更改,并且文件将在本地存储库中删除) 。没办法,对不起。
答案 1 :(得分:0)
如果我正确理解了您的问题,则希望从存储库中删除.csv文件,但是当其他人进行git pull
时,他们自己的.csv文件不会受到影响。
快速说明:为安全起见,请在单独的分支机构或进行空运行。
1)取消跟踪所有文件git rm -r --cached .
2)更新.gitignore文件以包括所有这些文件。
3)将所有文件添加回git add .
(这将不包括.gitignored文件)
4)提交/推送