Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从GitHub repo中删除设置文件,而不从每个远程克隆中删除它_Php_Git_Github - Fatal编程技术网

Php 从GitHub repo中删除设置文件,而不从每个远程克隆中删除它

Php 从GitHub repo中删除设置文件,而不从每个远程克隆中删除它,php,git,github,Php,Git,Github,我继承了一个通过GitHub更新和分发的PHP天气模板网站。以前的所有者在开始时没有生成足够的.gitignore文件,因此git跟踪的许多文件都不应该这样做。这些文件包括使用用户数据更新的.csv数据库、json数据文件和settings.php文件。在将文件列表添加到.gitignore之后,我现在的问题是让git在用户正在使用的所有远程克隆上不跟踪这些文件的最佳方法。我的第一个想法是只做一个git rm--cached,但是它会从每个人身上删除文件,删除每个人的数据 接下来我想提醒人们备份

我继承了一个通过GitHub更新和分发的PHP天气模板网站。以前的所有者在开始时没有生成足够的.gitignore文件,因此git跟踪的许多文件都不应该这样做。这些文件包括使用用户数据更新的.csv数据库、json数据文件和settings.php文件。在将文件列表添加到.gitignore之后,我现在的问题是让git在用户正在使用的所有远程克隆上不跟踪这些文件的最佳方法。我的第一个想法是只做一个
git rm--cached
,但是它会从每个人身上删除文件,删除每个人的数据

接下来我想提醒人们备份文件,一周后我会发出
git rm--cached
命令,但是由于用户数量未知但数量相当大,我不能保证每个人都会在论坛上看到消息,否则就太晚了,另外,肯定有一些用户甚至不看论坛就做了一次git pull

出于与上述相同的原因,让每个用户问题
git rm--cached
也可能不起作用


最终,是否有任何方法可以让git停止在模板的每个远程副本上跟踪这些文件,而不依赖于任何用户交互。从GitHub而不是从未完成副本中简单地删除命令将非常好。

如果我正确理解您的问题,您希望从存储库中删除.csv文件,但是当其他人执行
git pull时,他们自己的.csv不会受到影响

快速提示:为安全起见,请在单独的分支或干运行中执行此操作

1) 取消跟踪所有文件
git rm-r--cached.

2) 更新.gitignore文件以包含所有这些文件

3) 重新添加所有文件
git add.
(不包括.git忽略的文件)


4) 提交/推送

没有办法做你想做的事。Github不是文件托管,它是git存储库托管,它显示存储库的内容。要从Github中删除文件,您必须从存储库中删除文件(不需要按此顺序:您可以使用web界面直接从Github中删除文件,但随后您必须拉取更改,文件将在本地repo中删除)。没办法,对不起。

没有。这样做与使用
gitrm-r--cached
并列出每个文件相同。结果是在远程克隆上删除
.gitignore
中的文件。如果用户事先做了一个
git隐藏
,他们每个人仍然必须做一个
git rm-r--cached
,才能让git恢复到干净的状态。我认为这是一个长期的尝试,只是尝试使用我得到的。有没有合适的方法来分发一个网站模板,该模板正在积极开发中,用户可以通过一些简单的方法进行更新,比如
git pull
,这样它就不会在每次更新时覆盖设置和数据文件?