Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 Repo目录中所有以前版本的文件_Git - Fatal编程技术网

删除Git Repo目录中所有以前版本的文件

删除Git Repo目录中所有以前版本的文件,git,Git,我的git回购中有很多大型资产,我想从回购中删除所有以前的修订和删除的文件。但它需要在该目录中保留文件的最新副本 到目前为止,我只看到了如何清除以前删除的文件,而不必保留最近的修订版。您正在使用git存储文件,这不是它的目的 如果您不关心更改历史,只需创建一个包含大型资产的tar.gz文件(或任何合适的归档/压缩方法),并从git repo中引用它,也许可以使用脚本或Makefile将其复制并解压缩到正确的位置 要完全从历史记录(包括当前版本!)中删除文件,有两个步骤: 从所有提交中删除文件:g

我的git回购中有很多大型资产,我想从回购中删除所有以前的修订和删除的文件。但它需要在该目录中保留文件的最新副本


到目前为止,我只看到了如何清除以前删除的文件,而不必保留最近的修订版。

您正在使用git存储文件,这不是它的目的

如果您不关心更改历史,只需创建一个包含大型资产的
tar.gz
文件(或任何合适的归档/压缩方法),并从git repo中引用它,也许可以使用脚本或Makefile将其复制并解压缩到正确的位置

要完全从历史记录(包括当前版本!)中删除文件,有两个步骤:

  • 从所有提交中删除文件:
    git筛选器分支--force--index filter'git rm--cached--ignore unmatch FILENAME_WITH_PATH'--prune empty--tag name filter cat--all

  • 清理/清除文件对象的存储库:
    rm-rf.git/refs/original/;git reflog expire--expire=now--all;git gc--prune=now;git-gc--aggressive--prune=now


  • 如果您正在处理远程回购协议,并且需要对其进行清理,
    push-f
    可能不够;您需要从头开始重新创建,然后将本地(已清理)副本推送到其中。

    比这更简单。只需删除根目录下的.git文件夹。创建新存储库并签入。另外请注意,版本控制的任务是保留所有以前的版本,而不是删除这些版本。

    请记住,git提交的是完整的文件树,而不是更改。因此,“除去当前版本以外的所有版本”基本上与“除去所有版本”相同,仅适用于不包含当前版本的提交。您只需要决定是查找具有“旧”版本的“最新”提交,还是从每个提交中删除它(最新的提交除外)。不,我不是,它是一个xCode项目,具有更新的图像资源。你在假设我的目的,而不是看我的问题。你也给了我一个与我要求完全相反的建议。怎么会完全相反呢?您可以从回购中删除所有资产文件,然后重新提交当前版本(如果选择)。就用途而言,即使使用Xcode项目,您仍然可以通过拆分哪些文件提交到源存储库(例如,gitignore)以及哪些文件最终进入文件存储库来使用正确的大文件管理。