git 如何彻底删除已经提交到远程仓库的文件?而不是覆盖删除?git 如何删除已经提交到本地的文件?从历史记录中彻底清除彻底删除(本地+远程)
git 如何彻底删除已经提交到远程仓库的文件?而不是覆盖删除?git 如何删除已经提交到本地的文件?
覆盖删除:
提交了某个不需要的文件,并push到了远程分支,此时在本地删除该文件,然后再提交一次。
这样的会导致远程仓库的体积不会变小,文件在某一次commit中还可以回溯到。
1、查看文件日志记录:
git log -- <file>
2、如果只是提交到本地,还没有push到远程仓库:
git checkout -- <file>
3、 删除本地文件及Git记录
git rm <file>
4、从历史记录中彻底清除,例如前两次提交到远程分支了:
git reset HEAD^^^ data/mission.db
git commit --amend
git pull
git push
Git 在项目开发中常用的 50 种高频操作场景,覆盖日常开发、协作和高级用法的核心需求:
一、基础操作
-
初始化仓库
git init -
克隆远程仓库
git clone https://github.com/user/repo.git -
查看当前状态
git status -
添加文件到暂存区
git add file.txt # 添加单个文件 git add . # 添加所有修改 git add *.js # 通配符添加 -
提交修改
git commit -m "提交说明" -
修改最后一次提交
git commit --amend # 修改提交信息或追加文件
二、分支管理
-
查看所有分支
git branch -a -
创建新分支
git branch feature-login -
切换分支
git checkout main git checkout -b feature-payment # 创建并切换 -
合并分支
git checkout main git merge feature-login # 普通合并 git merge --no-ff feature-login # 保留分支历史 -
删除分支
git branch -d feature-old # 安全删除 git branch -D feature-broken # 强制删除未合并分支 -
解决合并冲突
手动编辑冲突文件后:git add resolved-file.txt git commit -m "解决冲突" -
变基(Rebase)
git checkout feature git rebase main # 将 feature 分支变基到 main -
交互式变基
git rebase -i HEAD~3 # 修改最近 3 次提交
三、远程协作
-
关联远程仓库
git remote add origin https://github.com/user/repo.git -
查看远程仓库
git remote -v -
拉取远程更新
git pull origin main # 拉取并合并 git fetch origin # 仅获取不合并 -
推送本地提交
git push origin main -
删除远程分支
git push origin --delete feature-old -
强制推送(慎用)
git push origin main --force -
跟踪远程分支
git checkout --track origin/dev
四、撤销与回退
-
撤销工作区修改
git checkout -- file.txt -
撤销暂存区文件
git reset HEAD file.txt -
回退到某次提交
git reset --hard a1b2c3d # 丢弃后续所有修改 git reset --soft a1b2c3d # 保留修改到暂存区 -
回退单个文件到某版本
git checkout a1b2c3d -- file.txt -
撤销某次提交
git revert a1b2c3d # 生成反向提交
五、日志与对比
-
查看提交历史
git log git log --oneline # 简洁模式 git log -p # 显示差异 git log --graph # 图形化分支 -
查看文件修改历史
git blame file.txt # 逐行查看修改者 git log -p file.txt # 文件修改记录 -
对比工作区与暂存区
git diff -
对比暂存区与最新提交
git diff --cached -
对比两次提交
git diff commit1 commit2
六、标签管理
-
创建标签
git tag v1.0.0 # 轻量标签 git tag -a v1.0.0 -m "Release" # 附注标签 -
推送标签到远程
git push origin --tags -
删除标签
git tag -d v1.0.0 git push origin :refs/tags/v1.0.0 # 删除远程标签
七、忽略文件
-
配置
.gitignore# 忽略日志文件 *.log # 忽略目录 /node_modules/ -
强制添加被忽略的文件
git add -f secret.txt
八、储藏与清理
-
临时储藏修改
git stash git stash save "暂存说明" -
恢复储藏的修改
git stash pop # 恢复并删除储藏 git stash apply # 恢复但不删除 -
清理未跟踪文件
git clean -fd # 强制删除未跟踪文件和目录
九、高级操作
-
子模块管理
git submodule add https://github.com/user/lib.git git submodule update --init --recursive -
二分法调试
git bisect start git bisect bad # 标记当前为错误版本 git bisect good a1b2c3d # 标记已知正常版本 -
重写提交信息
git rebase -i HEAD~3 # 修改最近 3 次提交信息 -
拆分提交
在交互式变基中使用edit标记提交,然后:git reset HEAD^ # 拆分提交内容 git add file1.txt git commit -m "提交部分修改" git add file2.txt git commit -m "剩余修改" git rebase --continue -
生成补丁文件
git format-patch HEAD~2 # 生成最近 2 次提交的补丁 -
应用补丁
git apply patch-file.patch
十、协作与工作流
-
Fork 仓库协作
# 添加上游仓库 git remote add upstream https://github.com/original/repo.git # 同步上游更新 git fetch upstream git merge upstream/main -
Pull Request 流程
git checkout -b feature # 开发后推送到自己的远程分支 git push origin feature # 在 GitHub/GitLab 创建 PR -
同步他人分支
git fetch origin git checkout -b colleague-feature origin/colleague-feature
十一、优化与调试
-
减少仓库体积
git gc --auto # 清理无用对象 git repack -ad # 重新打包对象 -
查看文件权限变化
git config core.fileMode false # 忽略文件权限变化
相关文章:
git 如何彻底删除已经提交到远程仓库的文件?而不是覆盖删除?git 如何删除已经提交到本地的文件?从历史记录中彻底清除彻底删除(本地+远程)
git 如何彻底删除已经提交到远程仓库的文件?而不是覆盖删除?git 如何删除已经提交到本地的文件? 覆盖删除: 提交了某个不需要的文件,并push到了远程分支,此时在本地删除该文件,然后再提交一次…...
IP协议之IP,ICMP协议
1.因特网中的主要协议是TCP/IP,Interneet协议也叫TCP/IP协议簇 2.ip地址用点分十进制表示,由32位的二进制表示,两部分组成:网络标识主机标识 3.IP地址分类; A:0.0.0.0-127.255.255.255 B:128.0.0.0-191.255.255.25…...
死锁 手撕死锁检测工具
目录 引言 一.理论联立 1.死锁的概念和原因 2.死锁检测的基本思路 3.有向图在死锁检测中的应用 二.代码实现案例(我们会介绍部分重要接口解释) 1.我们定义一个线性表来存线程ID和锁ID 2.表中数据的查询接口 3.表中数据的删除接口 4.表中数据的添…...
软考高级-系统架构设计师 案例题-软件架构设计
文章目录 软件架构设计质量属性效用树,质量属性判断必背概念架构风格对比MVC架构J2EE四层结构面向服务架构SOA企业服务总线ESB历年真题【问题1】 (12分)【问题2】(13分) 参考答案历年真题【问题1】(12分)【…...
JavaScript Date(日期)
JavaScript Date(日期) JavaScript的Date对象是处理日期和时间的一个强大工具。它允许开发者轻松地创建日期对象、格式化日期、计算日期差以及执行各种日期相关的操作。本文将深入探讨JavaScript中的Date对象,包括其创建、格式化、操作以及与其他日期时间的交互。 创建Dat…...
vue+d3js+fastapi实现天气柱状图折线图饼图
说明: vued3jsfastapi实现天气柱状图折线图饼图 效果图: step0:postman 1. 生成天气数据(POST请求):URL: http://localhost:8000/generate-data/?year2024&month3&seed42 方法: POST Headers:Content-Type:…...
vue:前端预览 / chrome浏览器设置 / <iframe> 方法预览 doc、pdf / vue-pdf 预览pdf
一、本文目标 <iframe> 方法预览 pdf 、word vue-pdf 预览pdf 二、<iframe> 方法 2.1、iframe 方法预览需要 浏览器 设置为: chrome:设置-隐私设置和安全性-网站设置-更多内容设置-PDF文档 浏览器访问: chrome://settings/co…...
【NLP 56、实践 ⑬ LoRA完成NER任务】
目录 一、数据文件 二、模型配置文件 config.py 三、数据加载文件 loader.py 1.导入文件和类的定义 2.初始化 3.数据加载方法 代码运行流程 4.文本编码 / 解码方法 ① encode_sentence(): ② decode(): 代码运行流程 ③ padding(): 代码…...
Java性能调优2025:从JVM到Kubernetes的全链路优化策略
摘要 📝 本文将带你深入探讨2025年Java全链路性能调优的最新实践,从JVM底层优化到Kubernetes集群调优,涵盖GC策略选择、JIT优化、容器化最佳实践等核心内容。通过大量实践案例和代码示例,帮助你构建完整的性能优化知识体系。 目…...
【力扣hot100题】(076)买卖股票的最佳时机
终于来到了最考验智商的贪心算法。 之前做过,但花了不少时间思考,所以这次做的很快。 思路就是记录最小价格,然后一路遍历边调整新的最小价格边比较目前价格和最小价格差价。 class Solution { public:int maxProfit(vector<int>&am…...
Java基础 4.9
1.方法递归调用练习 //请使用递归的方式求出斐波那契数1, 1, 2, 3, 5, 8, 13 //给你一个整数n, 求出它的值是多少 /* 思路 n 1 1 n 2 1 n > 3 前两个数的和 递归的思路 */ public class RecursionExercise01 {public static void main(String[] args) {Mathod mathod ne…...
NDK开发:音视频处理基础
音视频处理基础 一、音视频基础 1.1 音视频基本概念 视频编码格式 H.264/AVCH.265/HEVCVP8/VP9AV1音频编码格式 AACMP3PCMOPUS封装格式 MP4FLVMKVTS1.2 音视频处理流程 视频处理流程 采集(Camera/Screen)预处理(美颜/滤镜)编码(H.264/H.265)封装传输/存储音频处理流程 …...
WPF 组件的宽高绑定另一个组件的宽高的指定比值
0.此方法比较适用于响应式界面,组件的大小需要根据窗体大小改变。 1.创建转换函数,并传入比值 public class SizeConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if (value is double d &&…...
c#的form实现叠叠乐游戏
说明: 我希望用c#的form实现叠叠乐的游戏,玩家需要堆叠方块来建造高塔。 效果图: step1:游戏规则 游戏实现步骤: a. 处理事件,玩家可以释放摆动的方块,方块会下落。 b. 更新摆动方块的位移,根…...
k8s 1.23升级1.24
0、简介 这里只用3台服务器来做一个简单的集群,当前版本是1.23.17目标升级到1.24.17 地址主机名192.168.160.40kuber-master-1192.168.160.41kuber-master-2192.168.160.42kuber-node-1 我这里设置的master2可调度pod,将master2的污点去掉 kubectl de…...
Qt中的元对象系统
Qt的元对象系统(Meta-Object System)提供了对象间通信的信号和槽机制、运行时类型信息和动态属性系统。 元对象系统基于以下三个方面: (1).QObject类:为可以利用元对象系统的对象提供了基类。 (2).Q_OBJECT宏:用于启用元对象功能,…...
qt之opengl使用
使用qt中的openglWidget绘制一个三角形。自定义的类继承关系sunOpengl : public QOpenGLWidget,QOpenGLFunctions_3_3_Core 代码如下 /*----MainWindow.cpp----------------------------------------------*/ #include "mainwindow.h" #include "./ui_mainwin…...
晋城市电子健康证上传照片尺寸要求及手机拍照制作方法
晋城市餐饮从业人员健康证电子照片上传有着明确的技术规范。根据"晋城市从业人员电子健康证明服务平台"要求,照片尺寸应为358像素(宽)441像素(高),这一比例符合标准证件照的规格。照片底色可选择…...
python基础语法11-文件读写
在 Python 中,文件操作是日常编程中的常见任务之一。Python 提供了简单且强大的工具来读取和写入文件。通过使用内置的 open() 函数、read()、readline()、write() 等方法,我们可以轻松实现对文件的操作。此外,Python 的 with 语句可以帮助我…...
js实现跨域下载,展示下载进度以及自定义下载名称功能
一、 下载进度 loading弹窗结构 // loading状态DOM function setLoading() {let content document.querySelector(.loading)content.innerHTML content.innerHTML <div class"loading_content"><div class"contentBox"><div class&quo…...
MCP 实战系列(Day 2)- 动手搓个文件系统 MCP 服务器
上期回顾:MCP 实战系列(Day 1)- 什么是 MCP? 在上期文章中,我们详细介绍了 Model Context Protocol(MCP)的基本概念和应用场景。本节将带领大家开发一个简易的 Filesystem MCP Serverÿ…...
LabVIEW运动控制(三):EtherCAT运动控制器的高效加工指令自定义封装
ZMC408CE 高性能总线型运动控制器 ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口,ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。 ZMC408CE支持PLC、Basic、HMI组态三种编…...
Java接口性能优化面试问题集锦:高频考点与深度解析
1. 如何定位接口性能瓶颈?常用哪些工具? 考察点:性能分析工具的使用与问题定位能力。 核心答案: 工具:Arthas(在线诊断)、JProfiler(内存与CPU分析)、VisualVM、Prometh…...
Xilinx虚拟输入/输出(VIO)IP核详细介绍及使用示例
LogiCORE™ IP虚拟输入/输出(VIO)内核是一款可定制化的内核,能够实时监控和驱动FPGA(现场可编程门阵列)内部信号。其输入和输出端口的数量及位宽均可根据需求定制,以便与FPGA设计进行接口对接。由于VIO内核与被监控和/或驱动的设计保持同步,因此应用于您设计中的所有设计…...
Vue3+Vite+TypeScript+Element Plus开发-09.登录成功跳转主页
系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 Header响应式菜单缩展 Mockjs引用与Axios封装 登录设计 登录成功跳转主页 多用户动态加载菜单 Pinia持久化 动态路由-配置 文章目录 目录 系列文档目…...
网络安全应急响应-启动项和任务计划排查
应急响应-启动项排查 在应急响应排查中,启动项和任务计划是攻击者常用的持久化手段。以下是对Windows和Linux系统的详细排查指南,涵盖基础步骤及扩展注意事项: 一、启动项排查 Windows系统 系统配置(msconfig) 运行 …...
Linux : 内核中的信号捕捉
目录 一 前言 二 信号捕捉的方法 1.sigaction()编辑 2. sigaction() 使用 三 可重入函数 四 volatile 关键字 一 前言 如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为捕捉信号。在Linux: 进程信号初识-CSDN博客 这一篇中已经学习到了一种信号…...
开发效率提升200%——cursor
cursor带来的编程"革命" 高级语言编程转为"自然语言编程"借助cursor,直接超越初级后台开发、超越初级前端开发、超越初级测试、超越初级UI,产研一体linux命令只用学不用记,语言描述就是命令给一个表结构流程提示词&…...
微软庆祝它成立整整50周年
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
SpringBoot 整合 MCP
SpringBoot 整合 MCP MCP MCP 协议主要分为: Client 客户端(一般就是指 openai,deepseek 这些大模型)Server 服务端(也就是我们的业务系统)我们要做的就是把我们存量系统配置成 MCP Server 环境 JDK17…...
