win git filter-repo教程

这篇具有很好参考价值的文章主要介绍了win git filter-repo教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git filter-repo 是一个用于过滤和清理 Git 仓库历史的工具,它可以高效地批量修改提交历史中的文件内容、删除文件、重命名文件以及进行其他历史重构操作。相较于 git filter-branch,它通常更快且更易于使用。

以下是一个基本示例,说明如何使用 git filter-repo 来删除仓库中特定的大文件:

安装 git-filter-repo

  1. 首先确保你已安装 Python,并且可以通过 pip(Python 的包管理器)来安装软件包。如果没有安装 Python 和 pip,需要先安装它们。
  2. 使用 pip 安装 git-filter-repo
python -m pip install --user git-filter-repo  # 对于个人用户安装
# 或者全局安装(可能需要管理员权限)
python -m pip install git-filter-repo
  1. 安装完成后,你可以直接使用 git-filter-repo 命令。但由于它并非 Git 内置命令,你需要在终端中直接调用它的路径或者将它的安装目录添加到系统 PATH 环境变量中。例如,在 Unix/Linux 系统中,如果 git-filter-repo 已经被安装在 ~/.local/bin/ 目录下,你可以通过如下命令临时添加到 PATH 中:

    export PATH=$PATH:~/.local/bin/
    

win11

C:\Users\w8\AppData\Roaming\Python\Python311\site-packages 
  1. 既然 git-filter-repo 已经安装完毕,接下来你可以直接在命令行中使用它。但是请注意,在 Windows 系统中,可能需要将 git-filter-repo 的安装路径添加到系统的 PATH 环境变量,以便能在任何目录下执行这个命令。

    若要在当前终端会话中临时添加到 PATH,可以运行以下命令(请替换实际的路径):

    set PATH=%PATH%;C:\Users\w8\AppData\Roaming\Python\Python311\Scripts
    

如果希望永久生效,你需要编辑系统的环境变量设置:

  1. 右键点击“计算机”或“此电脑”,选择“属性”。
  2. 在左侧菜单栏选择“高级系统设置”。
  3. 在“系统属性”窗口中点击“环境变量”按钮。
  4. 在“系统变量”区域找到名为 Path 的变量,选中后点击“编辑”。
  5. 在“编辑环境变量”窗口中,点击“新建”按钮,然后添加 C:\Users\w8\AppData\Roaming\Python\Python311\Scripts 这个路径。
  6. 点击“确定”保存所有更改。

完成以上步骤后,你应该能够在命令行中直接运行 git filter-repo 命令了

删除仓库历史中的大文件

假设你想删除历史记录中所有包含名为 large_file.txt 的文件,并且你知道这个文件存在于所有的提交中。

  1. 首先备份你的仓库,以防万一:

    Bash

    cp -r your_repo your_repo_backup
    
  2. 进入要处理的仓库目录:

    Bash

    cd your_repo
    
  3. 使用 git filter-repo 删除指定文件:

    Bash

    git filter-repo --force --invert-paths --path large_file.txt
    

    参数解释:

    • --force:允许覆盖当前仓库。
    • --invert-paths:保留不匹配路径的提交,这里是反选,即删除匹配路径的文件。
    • --path large_file.txt:指定要从历史中删除的文件名。
  4. 清理并优化本地仓库:

    Bash

    git reflog expire --all --expire-unreachable=now --update-reflogs
    git gc --prune=now --aggressive
    
  5. 推送更改到远程仓库(如果必要的话):

    Bash

    git push origin --force --all
    git push origin --force --tags
    

    注意:由于你改变了历史记录,所以需要用 --force 强制推送,并通知协作者他们需要重新克隆更新后的仓库。

其他高级用法

除了删除文件外,git filter-repo 还可以实现更多的功能,例如:

  • 删除符合某种模式的所有文件:

    Bash

    git filter-repo --force --path-glob '*.zip'
    
  • 替换文件内容:

    Bash

    git filter-repo --replace-text <replacement-file>
    

    <replacement-file> 中定义替换规则。

  • 根据大小过滤文件:

    Bash

    git filter-repo --strip-blobs-bigger-than 10M
    

    删除大于10MB的二进制文件。

  • 更多复杂操作,请参考官方文档:https://github.com/newren/git-filter-repo/blob/main/README.md

请根据具体需求调整命令参数,并始终谨慎操作,因为修改历史记录会影响所有仓库使用者。在执行这些操作前务必创建仓库备份。文章来源地址https://www.toymoban.com/news/detail-848633.html

到了这里,关于win git filter-repo教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • win10下Elasticsearch安装配置完整教程

    一、在安装Elasticsearch引擎之前,必须安装ES需要的软件环境,安装Java JDK和配置JAVA_HOME环境变量 二.安装ElasticSearch服务,下载和安装es包 https://www.elastic.co/downloads/past-releases Elasticsearch 8.6.1 | Elastic   安装成功之后,先不急着初始化。(先解决初始化乱码问题,不解决也可使用,

    2024年02月03日
    浏览(37)
  • 【git】win 10 / win 11:git 首次拉取云效平台代码详细教程

    目录 一、Git 生成 SSH 公钥 (1)git 安装 (2)生成 SSH 公钥  ① 前提  ② 背景信息  ③ 查看已存在的 SSH 密钥/公钥 ④ 生成 SSH 密钥/公钥 ⑤ 拷贝公钥 二、云效工作台添加 SSH 公钥 (1)登录  (2)个人设置  (3)添加 SSH 公钥 三、git 使用 SSH 链接拉取云效代码  (1)本

    2024年02月03日
    浏览(81)
  • Git安装详细教程(win11)

    官网下载:点击下载 网盘下载:点击下载 双击程序运行,点击next 选择安装路径,我安装在了D盘,如下图所示,之后点击next 选择默认即可,或根据自己需要选择 开始菜单页选择,默认即可,直接next 默认编辑器,直接next 调整分支初始名,根据需要自己选择,我这里默认第

    2024年02月11日
    浏览(49)
  • BFG Repo-Cleaner 清理在Git历史记录中不需要的数据(git仓库臃肿、git仓库太大、清理git仓库大文件、清理.git\objects\pack中的.pack文件)

    在处理 Git 项目时,可能会遇到一些敏感信息或者大文件被误上传到了仓库,这样会导致仓库变得庞大并且难以管理。这种情况下,BFG Repo-Cleaner 就派上用场了。它是一个更简单、更快速的工具,可以帮助我们从 Git 历史记录中删除不需要的数据。 BFG Repo-Cleaner 是一个由 Scala

    2024年02月02日
    浏览(53)
  • git&repo入门

    2.1 git介绍 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 他是Linus Torvarlds为了帮助管理linux内核开发而开发的一个开放源码的版本控制软件 2.2 repo介绍 Repo 是对 Git 构成补充的多(可以巨多的那种)代码库管理工具,简单说就是使用 Python 在

    2024年02月11日
    浏览(39)
  • 初学git&repo的种种

    经过各种折腾之后,发现git其实还是很简单的; 首先你需要两台机器,一台作为 服务器 ,一台作为 开发机器 ,开发机器从服务器上拉取代码。 目 目录 git建仓 开发机器拉取代码 初始化仓代码 repo管理 repo工具的下载 repo同步时,无法访问google或者离线,则可以从国内源或者

    2024年02月03日
    浏览(29)
  • ThingsBoard教程(三九):规则节点解析 根据经纬度过滤数据 GPS geofencing filter

    这篇文章 介绍 GPS geofencing filter 节点, 根据经纬度来过滤通过规则链的数据。 通过基于GPS的地理围栏过滤传入的消息。从传入消息中提取纬度和经度参数,并根据配置的范围进行检查。 配置: 纬度键名称 (Latitude key name)- 包含位置纬度的消息字段的名称; 经度键名称( Long

    2024年02月03日
    浏览(55)
  • 使用git-repo管理多个git仓库

    step 1: 下载repo git-repo下载可在服务器端通过以下任一方式下载。 git clone https://gerrit.googlesource.com/git-repo (谷歌官方源) git clone https://mirrors.tuna.tsinghua.edu.cn/git/git-repo (国内清华源) git clone git-repo - Git at Google (国内中科大源) step 2 初始化工程和mainifest git仓库 step 3: 上传每个git的代

    2024年02月03日
    浏览(39)
  • repo和git的常用命令

    repo是Google开发的用于管理Android版本库的一个工具,repo是使用Python对git进行了一定的封装,并不是用于取代git,它简化了对多个Git版本库的管理。用repo管理的版本库都需要使用git命令来进行操作。因此,使用repo工具之前,请先确保已经安装git。 repo是一个用于管理多个Git仓库

    2024年02月16日
    浏览(40)
  • Repo命令与git的关系

    Repo命令与git的关系是很密切的。 我们都知道,git是一个开源的版本控制系统,常用在大型项目的管理上。 我们对repo的使用和了解就比较少了。Repo是一个基于Git构建出来的工具,它的出现不是为了取代Git,而是为了更方便开发者使用Git这个工具。repo脚本的部分截图: 事实上

    2024年02月01日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包