Git保留本地文件但从历史记录中删除某个文件夹
本文概述了在Git中使用`git filter-repo`工具从仓库历史记录中删除指定文件夹的步骤,包括备份仓库、安装工具、执行命令和强制推送更改。
标签:Git
本文概述了在Git中使用`git filter-repo`工具从仓库历史记录中删除指定文件夹的步骤,包括备份仓库、安装工具、执行命令和强制推送更改。
在 Git 中,要保留文件夹但从历史记录中删除某个文件夹(及其所有内容)的步骤如下:
cp -r <your_local_repo>
使用 filter-repo 工具:Git 官方推荐使用 git filter-repo 来进行历史记录的重写。它比 git filter-branch 更快、更可靠。
首先,你需要安装git-filter-repo
:
pip install git-filter-repo
运行 git filter-repo
命令:假设你要从历史记录中删除名为 folder_to_remove
的文件夹,可以运行以下命令:
git filter-repo --path folder_to_remove --invert-paths
这个命令会从历史记录中删除 folder_to_remove
文件夹及其所有内容,注意不要遗漏--invert-paths
参数,否则所有文件将会丢失(仅移除<->仅保留)。
强制推送到远程仓库:由于这会重写历史,你需要强制推送更改到远程仓库:
git push origin --force --all