📌  相关文章
📜  git 从提交中删除大文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:15:19.120000             🧑  作者: Mango

Git 从提交中删除大文件 - Shell/Bash

在使用Git进行版本控制时,有时候我们会意外地提交了一些大文件,这可能导致仓库变得庞大,影响到克隆和推送的速度。为了避免这个问题,我们可以使用Shell/Bash命令从提交中删除这些大文件。

以下是一个用于删除大文件的Shell/Bash脚本,它会使用Git的filter-branch命令重写提交历史,将指定的大文件从所有提交中移除:

#!/bin/bash

# 设置要删除的大文件路径
file_path="path/to/large_file.ext"

# 创建一个新的分支用于重写提交历史
git checkout --orphan temp_branch

# 清除旧的提交历史
git rm -rf .

# 添加除了大文件之外的所有文件和文件夹
git add .

# 提交新的空白提交
git commit -m "Remove large file"

# 删除临时分支
git branch -D master

# 重命名新的分支为 master
git branch -m master

# 强制推送重写后的提交历史
git push -f origin master

请根据你的实际情况修改file_path变量的值,将其指向你要删除的大文件的路径。运行此脚本时,它会创建一个新的分支 temp_branch,然后使用filter-branch将大文件从所有提交中删除。最后,它会将临时分支重命名为 master 并强制推送到远程仓库。

请注意,这个过程会改变提交历史,因此如果你的仓库已被克隆或拉取过,你的团队成员可能需要执行类似的操作来同步你的更改。

为了保证安全,建议在执行这样的操作之前,先备份你的仓库或与团队成员进行沟通。

希望这个Shell/Bash脚本能帮助你从Git提交中移除大文件,并保持仓库的精简性和可维护性。