win git filter-repo教程
git filter-repo 是一个用于过滤和清理 Git 仓库历史的工具,它可以高效地批量修改提交历史中的文件内容、删除文件、重命名文件以及进行其他历史重构操作。相较于 git filter-branch,它通常更快且更易于使用。
以下是一个基本示例,说明如何使用 git filter-repo 来删除仓库中特定的大文件:
安装 git-filter-repo
- 首先确保你已安装 Python,并且可以通过 pip(Python 的包管理器)来安装软件包。如果没有安装 Python 和 pip,需要先安装它们。
- 使用 pip 安装
git-filter-repo:
python -m pip install --user git-filter-repo # 对于个人用户安装
# 或者全局安装(可能需要管理员权限)
python -m pip install git-filter-repo
-
安装完成后,你可以直接使用
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
-
既然
git-filter-repo已经安装完毕,接下来你可以直接在命令行中使用它。但是请注意,在 Windows 系统中,可能需要将git-filter-repo的安装路径添加到系统的 PATH 环境变量,以便能在任何目录下执行这个命令。若要在当前终端会话中临时添加到 PATH,可以运行以下命令(请替换实际的路径):
set PATH=%PATH%;C:\Users\w8\AppData\Roaming\Python\Python311\Scripts
如果希望永久生效,你需要编辑系统的环境变量设置:
- 右键点击“计算机”或“此电脑”,选择“属性”。
- 在左侧菜单栏选择“高级系统设置”。
- 在“系统属性”窗口中点击“环境变量”按钮。
- 在“系统变量”区域找到名为
Path的变量,选中后点击“编辑”。 - 在“编辑环境变量”窗口中,点击“新建”按钮,然后添加
C:\Users\w8\AppData\Roaming\Python\Python311\Scripts这个路径。 - 点击“确定”保存所有更改。
完成以上步骤后,你应该能够在命令行中直接运行 git filter-repo 命令了
删除仓库历史中的大文件
假设你想删除历史记录中所有包含名为 large_file.txt 的文件,并且你知道这个文件存在于所有的提交中。
-
首先备份你的仓库,以防万一:
Bash
cp -r your_repo your_repo_backup -
进入要处理的仓库目录:
Bash
cd your_repo -
使用
git filter-repo删除指定文件:Bash
git filter-repo --force --invert-paths --path large_file.txt参数解释:
--force:允许覆盖当前仓库。--invert-paths:保留不匹配路径的提交,这里是反选,即删除匹配路径的文件。--path large_file.txt:指定要从历史中删除的文件名。
-
清理并优化本地仓库:
Bash
git reflog expire --all --expire-unreachable=now --update-reflogs git gc --prune=now --aggressive -
推送更改到远程仓库(如果必要的话):
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
请根据具体需求调整命令参数,并始终谨慎操作,因为修改历史记录会影响所有仓库使用者。在执行这些操作前务必创建仓库备份。
相关文章:
win git filter-repo教程
git filter-repo 是一个用于过滤和清理 Git 仓库历史的工具,它可以高效地批量修改提交历史中的文件内容、删除文件、重命名文件以及进行其他历史重构操作。相较于 git filter-branch,它通常更快且更易于使用。 以下是一个基本示例,说明如何使…...
Redis相关操作高阶篇--集群搭建
Redis相关操作大全一篇全搞定-CSDN博客 Redis集群 是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis集群不需要seninel哨兵也能完成节点移除和故障转移的功能。需要将每个节点 设置成集群模式,这种集群模式没有中心节…...
JNDI注入原理及利用IDEA漏洞复现
🍬 博主介绍👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…...
大数据,或称巨量资料
大数据,或称巨量资料,指的是在传统数据处理应用软件不足以处理的大或复杂的数据集。大数据也可以定义为来自各种来源的大量非结构化或结构化数据。从学术角度而言,大数据的出现促成广泛主题的新颖研究,这也导致各种大数据统计方法…...
windows上打开redis服务闪退问题处理
方法1:在windows上面打开redis服务时,弹窗闪退可能是6379端口占用,可以用以下命令查看: netstat -aon | findstr 6379 如果端口被占用可以用这个命令解决: taskkill /f /pid 进程号 方法2: 可以使用…...
分布式锁简单实现
分布式锁 Redis分布式锁最简单的实现 想要实现分布式锁,必须要求 Redis 有「互斥」的能力,我们可以使用 SETNX 命令,这个命令表示SET if Not Exists,即如果 key 不存在,才会设置它的值,否则什么也不做。 …...
BM23 二叉树的前序遍历
public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * param root TreeNode类 * return int整型一维数组*/public void preorder(List<Integer> list,TreeNode root){if(root null)return;l…...
阿里云代理仓库地址
在天朝使用jcenter、mavenCentral及google三个远程仓库,Gradle Sync会很慢,google仓库甚至需要科学上网才能访问。为了加快Gradle Sync速度,一招教你优先用 阿里云仓库服务 的仓库作为下载源。 一劳永逸之道 将本项目的gradle/init.d/init.g…...
nginx的location规则与其他功能
1. nginx中location规则: 规则描述~表示执行一个正则匹配,区分大小写~*表示执行一个正则匹配,不区分大小写^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录进…...
用汇编进行字符串匹配
用汇编进行字符串匹配 2、试编写一程序,要求比较两个字符串 STRING1 和 STRING2 所含字符是否完全相同,若相同则显示 MATCH,若不相同则显示 NO MATCH。 .model small .dataSTRING1 db hello world!,0STRING2 db hello china!,0matchString d…...
回归预测 | Matlab基于SAO-BiLSTM雪融算法优化双向长短期记忆神经网络的数据多输入单输出回归预测
回归预测 | Matlab基于SAO-BiLSTM雪融算法优化双向长短期记忆神经网络的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SAO-BiLSTM雪融算法优化双向长短期记忆神经网络的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SAO-B…...
mysql数据库的索引管理
目录 一、索引的概述 1、索引的概念 2、索引的作用 3、索引的副作用 4、创建索引的原则依据 5、索引优化 6、索引的分类 7、数据文件与索引文件 二、管理数据库索引 1、查询索引 2、创建索引 2.1 创建普通索引 2.2 创建唯一索引 2.3 创建主键索引 2.4 创建组合…...
VUE+Vant实现H5组织架构选人选公司组件
提醒自己: 这是之前的逻辑,或许你重新写会有更好的方法,可以参考逻辑!!! 功能介绍 1.有面包屑点击切换 2.有公司、部门、人员 3.单选、多选实现 4.编辑/回显 5.使用随意切换层级和跳转到指定层级回显等功…...
【以图搜图】GPUNPU适配万物识别模型和Milvus向量数据库
目录 以图搜图介绍项目地址Milvuscv_resnest101_general_recognition 代码使用流程结果展示模型部署环境Milvus部署及使用docker安装docker-compose安装Milvus可视化工具Attu进入网页端 Data数据示例点个赞再走呗!比心💞️ 以图搜图 • 🤖 Mo…...
迷茫了!去大厂还是创业?
大家好,我是麦叔,最近我创建了一个 学习圈子 有球友在 星球 里提问。 大厂的layout岗位和小厂的硬件工程师岗位,该如何选择? 这个问题我曾经也纠结过,不过现在的我,I am awake! 肯定是有大点大。…...
Qt源码分析: QEventLoop实现原理
QEventLoop屏蔽了底层消息循环实现细节,向上提供了与平台无关的消息/事件循环。 本文拟对Windows系统下QEventLoop的实现原理予以分析。 注1:限于研究水平,分析难免不当,欢迎批评指正。 注2:文章内容会不定期更新。 …...
痛失offer的八股
java面试八股 mysql篇: 事物的性质: 事物的性质有acid四特性。 a:automic,原子性,要么全部成功,要么全部失败,mysql的undolog,事物在执行的时候,mysql会进行一个快照读…...
【Git】第一课:Git的介绍
简介 什么是Git? Git是一个开源的分布式版本控制系统,用于跟踪代码的改变和协同开发。它最初由Linus Torvalds为了管理Linux内核开发而创建,现已成为开源软件开发中最流行的版本控制系统,没有之一。Git允许多人同时在不同的分支上工作&…...
知识蒸馏——深度学习的简化之道 !!
文章目录 前言 1、什么是知识蒸馏 2、知识蒸馏的原理 3、知识蒸馏的架构 4、应用 结论 前言 在深度学习的世界里,大型神经网络因其出色的性能和准确性而备受青睐。然而,这些网络通常包含数百万甚至数十亿个参数,使得它们在资源受限的环境下&…...
【爬虫】Selenium打开新tab页截图并关闭
如果说 你曾苦过我的甜 我愿活成你的愿 愿不枉啊 愿勇往啊 这盛世每一天 山河无恙 烟火寻常 可是你如愿的眺望 孩子们啊 安睡梦乡 像你深爱的那样 🎵 王菲《如愿》 在自动化测试和网页抓取中,Selenium WebDriver 是一个强大的工具&…...
转行AI Agent的真实成本:时间、金钱与精力
建议按照我下面的办法来做,不一定能让你成为LLM专家,但一定能帮你快速入门,少走弯路。 1.先把模型“用顺”一上来别纠结框架、工程化这些,第一件事是能稳定调用一个模型,让它按你想要的格式输出结果。很多人卡在这里&a…...
Spring_couplet_generation 项目环境配置:Anaconda虚拟环境管理详解
Spring_couplet_generation 项目环境配置:Anaconda虚拟环境管理详解 你是不是也遇到过这种情况?在电脑上跑一个Python项目,结果因为包版本冲突,或者依赖关系混乱,项目死活跑不起来。更头疼的是,这个项目需…...
【2024最前沿AIAgent架构白皮书】:基于127个生产级Agent案例验证的注意力分层设计法则
第一章:注意力机制在AIAgent架构中的范式演进 2026奇点智能技术大会(https://ml-summit.org) 注意力机制已从Transformer中静态、全局的序列建模组件,逐步演化为AIAgent认知循环中的动态调度中枢。现代AIAgent不再将注意力视为单一加权聚合操作…...
解构PDF数据壁垒:Tabula如何重塑信息提取工作范式
解构PDF数据壁垒:Tabula如何重塑信息提取工作范式 【免费下载链接】tabula Tabula is a tool for liberating data tables trapped inside PDF files 项目地址: https://gitcode.com/gh_mirrors/ta/tabula 在数字信息时代,PDF文件作为文档交换的标…...
玻璃的前世今生,了解一下?
玻璃的前世今生,了解一下? 玻璃的前世今生 改革开放40年,我国基础建设飞速发展。一栋栋高耸入云端的摩天大楼,一片片一望无边的居民住宅,房地产行业为我国的GDP画上了浓墨重彩的一笔。毫无疑问,为建筑物穿上漂亮外衣的玻璃行业也是突飞猛进,为我们建筑表皮的安全节能美…...
C语言为什么是程序员的最爱?有什么不同吗
C语言作为一门古老而经典的编程语言,长久以来一直受到程序员们的热爱和推崇。在计算机科学的发展过程中,C语言不仅成为了众多编程语言的基石,更因其简洁、高效和灵活性而成为程序员们的首选。本文将探讨C语言为何成为程序员的最爱,…...
PyTorch遥感图像变化检测实战技巧:从原理到部署的完整指南
PyTorch遥感图像变化检测实战技巧:从原理到部署的完整指南 【免费下载链接】change_detection.pytorch Deep learning models for change detection of remote sensing images 项目地址: https://gitcode.com/gh_mirrors/ch/change_detection.pytorch 遥感图…...
Omni-Vision Sanctuary在YOLOv5项目中的应用:自动生成数据增强与训练脚本
Omni-Vision Sanctuary在YOLOv5项目中的应用:自动生成数据增强与训练脚本 1. 引言:目标检测项目的效率痛点 做目标检测项目的朋友应该都有这样的体验:准备数据集、调参、训练模型这些环节特别耗时。特别是数据增强策略的选择和训练参数的调…...
终极指南:如何用MediaPipe TouchDesigner插件打造惊艳的实时视觉交互
终极指南:如何用MediaPipe TouchDesigner插件打造惊艳的实时视觉交互 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner 还在为TouchDes…...
基于yolo26算法的玉米卷叶心识别 智慧农业玉米病虫害农药丢撒识别 玉米卷心识别 玉米叶心图像识别 农作物识别第10410期
玉米数据集 README一、数据集核心信息表类别 玉米叶心项目详情类别数量及中文名称1类数据总量400 张(图像数据)数据集格式种类YOLO 格式最重要的应用价值1. 为玉米相关计算机视觉研究提供基础图像资源;2. 支持玉米目标检测模型的初期数据探索…...
