思涯谷

  • 首页
  • 探索
  • 标签
  • 关于
思涯谷 ©2025
京ICP备2022030312号GitHub User's stars

Git保留本地文件但从历史记录中删除某个文件夹

本文概述了在Git中使用`git filter-repo`工具从仓库历史记录中删除指定文件夹的步骤,包括备份仓库、安装工具、执行命令和强制推送更改。

...
标签:Git
点赞(0)
返回顶部

相关内容

  • Git处于游离节点,领先master分支的解决方案
  • git commit约定式提交规范
  • 把git仓库打包成压缩包
2024-08-13

留言

在 Git 中,要保留文件夹但从历史记录中删除某个文件夹(及其所有内容)的步骤如下:

  1. 备份你的仓库:在进行任何重大更改之前,最好先备份你的仓库,以防出现意外情况。
cp -r <your_local_repo>

使用 filter-repo 工具:Git 官方推荐使用 git filter-repo 来进行历史记录的重写。它比 git filter-branch 更快、更可靠。

首先,你需要安装git-filter-repo:

pipx 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

参考文献:https://htmlpreview.github.io/?https://github.com/newren/git-filter-repo/blob/docs/html/git-filter-repo.html#EXAMPLES