Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
git rm——缓存的文件仍保留在repo中的某个位置_Git_Github - Fatal编程技术网

git rm——缓存的文件仍保留在repo中的某个位置

git rm——缓存的文件仍保留在repo中的某个位置,git,github,Git,Github,我使用快速更新实用程序进行了Mercurial->git转换。一切都很顺利。当我试图推送到github时,推送被拒绝,因为repo中的一些日志文件太大。我使用以下方法将它们全部删除: $> git branch * master new_admin_gui $> git rm -r --cached logs $> git rm -r --cached out $> git rm -r --cached tmp $> git commit -am "Remove

我使用快速更新实用程序进行了Mercurial->git转换。一切都很顺利。当我试图推送到github时,推送被拒绝,因为repo中的一些日志文件太大。我使用以下方法将它们全部删除:

$> git branch
* master
  new_admin_gui
$> git rm -r --cached logs
$> git rm -r --cached out
$> git rm -r --cached tmp
$> git commit -am "Removed files"
$> git checkout new_admin_gui
$> git rm -r --cached logs
$> git rm -r --cached out
$> git rm -r --cached tmp
$> git commit -am "Removed files"
但是,当我执行
git推送时,GitHub仍然拒绝推送,因为
很明显,这些日志仍然存在于回购协议的某个地方。我不能
git-rm
-r--cached
因为它告诉我

fatal: pathspec 'logs' did not match any files
显然,它们仍在回购协议中,但我不知道在哪里或如何摆脱它们。只有两个分支,因此我认为它们不会隐藏在其他地方。

git rm--cached
从存储库中的未来提交中删除您试图删除的文件,但日志文件仍在存储库的历史记录中。如果它们太大而无法推向GitHub,你也需要从你的历史中删除它们

您可以使用
过滤器分支
命令执行此操作,如中所述

git filter-branch --force --index-filter \
  'git rm -r --cached --ignore-unmatch logs/ out/ tmp/' \
  --prune-empty --tag-name-filter cat -- --all