git怎么删除大文件

fiy 其他 267

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要删除大文件,可以使用以下方法:

    1. 检查大文件:使用`git ls-files -s`命令查看当前仓库中的所有文件及其大小。找到你想要删除的大文件并记录下其路径。

    2. 清除大文件的历史记录:使用`git filter-branch`命令来清除该大文件的所有历史记录。假设文件路径为`path/to/file.ext`,命令如下:
    “`
    git filter-branch –tree-filter ‘rm -f path/to/file.ext’ HEAD
    “`

    这个命令会遍历所有提交并执行提供的命令。在每个提交中,它会删除指定路径下的文件。

    注意:`filter-branch`命令会修改提交的 SHA-1 值,因此如果你之前已经将该仓库发布到其他地方(如 GitHub),则你需要使用 `force push` 强制推送更改。

    3. 清除大文件的引用:运行以下命令来清除大文件的所有引用:
    “`
    git gc –prune=now
    “`
    这个命令会清理无用的引用对象,包括你删除的大文件。

    4. 检查仓库大小:运行以下命令来检查仓库的大小:
    “`
    git count-objects -v
    “`
    这个命令会显示仓库中的所有对象数量和占用的空间大小。如果你成功删除了大文件,应该会看到仓库大小减小。

    请注意,删除大文件后,你的仓库历史记录将被修改,因此请谨慎操作,并确保在执行这些操作前备份你的仓库。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要删除Git中的大文件,可以通过以下几种方法:

    1. 运行`git filter-branch`命令

    使用`git filter-branch`命令可以重写Git历史记录,并从中移除指定的大文件。这个命令会遍历每个提交,然后你可以使用`–index-filter`选项指定要删除的文件。以下是一个使用`git filter-branch`命令删除大文件的示例:

    “`
    git filter-branch –index-filter ‘git rm –cached –ignore-unmatch path/to/big_file’ — –all
    “`

    这里的`path/to/big_file`是你要删除的大文件的路径。

    注意:执行这个命令会改变Git历史记录,因此在执行之前,请确保你了解这个命令的影响,并备份你的存储库。

    2. 使用BFG Repo-Cleaner工具

    BFG Repo-Cleaner是一个专门用于清理Git存储库的工具,可以方便地删除大文件。首先,你需要在本地安装BFG Repo-Cleaner。然后,通过以下命令来使用它:

    “`
    bfg –delete-files path/to/big_file
    “`

    这里的`path/to/big_file`是你要删除的大文件的路径。

    BFG Repo-Cleaner会遍历Git历史记录,并删除指定的文件。删除后,你需要运行`git gc`命令来清理存储库中的无效对象。

    3. 利用Git LFS(Large File Storage)

    Git Large File Storage(简称Git LFS)是一个用于处理大文件的扩展插件。它将大文件存储在Git存储库之外,以减小存储库的体积,并提高性能。

    要使用Git LFS,需要先安装和配置它。然后,在添加大文件之前,运行以下命令来启用Git LFS:

    “`
    git lfs track path/to/big_file
    “`

    这样,Git会使用Git LFS来管理这个大文件。如果要删除已经上传到Git LFS的大文件,可以运行以下命令:

    “`
    git lfs rm path/to/big_file
    “`

    这样会删除大文件,并修改Git LFS追踪文件。

    4. 使用Git BFG Repo-Cleaner的`–strip-blobs-bigger-than`选项

    这个方法也是使用BFG Repo-Cleaner工具,但相比之前的方法更加快速,因为它不会改变Git历史记录,而是直接删除大文件。可以使用以下命令:

    “`
    bfg –strip-blobs-bigger-than 10M
    “`

    这里的`10M`是你要删除的文件大小的阈值,你可以根据需要进行修改。

    这个命令会直接从Git存储库中删除大于指定大小的文件。

    5. 使用Git Reset命令

    如果你只是想从最近的提交中删除大文件,可以使用`git reset`命令。运行以下命令:

    “`
    git reset HEAD~1
    “`

    这个命令会将当前分支的HEAD指向前一个提交。然后,可以使用`git rm`命令从工作目录和暂存区中删除大文件。

    这些方法都可以用来从Git中删除大文件,你可以选择适合你的情况的方法来处理。记得在执行任何操作之前,先备份你的存储库。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    删除 git 仓库中的大文件有多种方法。下面是一种常用的方法,可以帮助你删除大文件。

    ## 方法一:使用 BFG Repo-Cleaner

    BFG Repo-Cleaner 是一种强大的工具,可以帮助你快速删除 git 仓库中的大文件。

    1. 首先,确保你已经安装了 Java 运行环境(JRE)。

    2. 打开终端或命令提示符,并导航到包含你的 git 仓库的目录。

    3. 使用以下命令下载并执行 BFG Repo-Cleaner:

    “`shell
    $ curl -O http://repo1.maven.org/maven2/com/madgag/bfg/1.13.0/bfg-1.13.0.jar
    $ java -jar bfg-1.13.0.jar
    “`

    4. 接下来,使用以下命令删除大文件。将 `` 替换为你要删除的具体文件名或文件扩展名:

    “`shell
    $ java -jar bfg-1.13.0.jar –delete-files
    “`

    或者,如果你要删除大于某个特定大小的文件,可以使用以下命令。将 `` 替换为特定大小的文件,例如 `100M` 表示大于 100MB:

    “`shell
    $ java -jar bfg-1.13.0.jar –strip-blobs-bigger-than
    “`

    5. 然后,使用以下命令清理 git 仓库的历史记录:

    “`shell
    $ git reflog expire –expire=now –all && git gc –prune=now –aggressive
    “`

    6. 最后,使用以下命令强制推送更改到远程仓库:

    “`shell
    $ git push –force
    “`

    完成以上步骤后,大文件将从你的 git 仓库中删除。

    ## 方法二:使用 Git Filter-branch

    Git Filter-branch 是另一种删除 git 仓库中大文件的方法。以下是使用 Git Filter-branch 的步骤:

    1. 打开终端或命令提示符,并导航到包含你的 git 仓库的目录。

    2. 使用以下命令创建一个新的分支:

    “`shell
    $ git checkout –orphan new_branch
    “`

    3. 接下来,使用以下命令将你的 commit 历史记录重写为仅包含指定文件以外的部分。将 `` 替换为你要保留的文件名或文件扩展名:

    “`shell
    $ git filter-branch –subdirectory-filter !’
    “`

    或者,如果你要保留文件大小小于某个特定大小的文件,可以使用以下命令。将 `` 替换为特定大小的文件,例如 `100M` 表示小于 100MB:

    “`shell
    $ git filter-branch –tree-filter ‘find . -size + -delete’ –prune-empty HEAD
    “`

    4. 然后,使用以下命令清理 git 仓库的历史记录:

    “`shell
    $ git reflog expire –expire=now –all && git gc –prune=now –aggressive
    “`

    5. 最后,使用以下命令强制推送更改到远程仓库:

    “`shell
    $ git push –force
    “`

    完成以上步骤后,大文件将从你的 git 仓库中删除。

    请注意,使用 Git Filter-branch 可能会使你的 commit 历史记录发生改变,所以请在删除之前确保备份必要的文件和 commit 历史记录。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部