如何忽略已经提交到 Git 仓库中的文件

news2024/12/23 20:17:42

文章目录

  • 前言
  • 一、确认文件是否已经被提交
  • 二、确认 .git 文件存在
  • 三、修改 .git/info/exclude 文件
  • 四、修改文件名
  • 五、提交和推送
  • 六、验证
  • 总结


前言

在日常开发中,我们常常会遇到这样的情况:不小心将不应追踪的文件提交到了 Git 仓库中,例如配置文件、临时文件等。尽管可以通过 .gitignore 文件来忽略这些文件,但如果文件已经被提交到远程仓库,那么仅仅在 .gitignore 中添加规则并不能让 Git 忽略它们。本文将详细介绍如何处理这种情况,并最终使 Git 忽略这些文件。

在这里插入图片描述


一、确认文件是否已经被提交

首先,我们需要确认目标文件是否已经被提交到 Git 仓库中。可以通过以下命令查看仓库中所有被追踪的文件:

git ls-tree -r master --name-only

如果目标文件出现在输出列表中,说明它已经被提交并被 Git 跟踪。

也有简单粗暴的办法,那就是随便给你要确认的文件修改一点,看在vscode的源代码管理是否会出现在列表里

二、确认 .git 文件存在

在项目根目录下,.git 文件夹包含了所有的 Git 配置和版本控制信息。使用以下命令查看 .git 文件夹是否存在:

ls --all

如果看到蓝色的 .git 文件夹,说明这是一个 Git 仓库,接下来我们需要对该文件夹进行进一步操作。
在这里插入图片描述

三、修改 .git/info/exclude 文件

.gitignore 文件中的规则是全局的,影响整个仓库的文件忽略。但如果我们只想在当前本地仓库忽略一些文件,可以修改 .git/info/exclude 文件。这是一个类似于 .gitignore 的文件,但它仅作用于当前本地仓库。

使用以下命令打开 .git/info/exclude 文件进行编辑

code .git/info/exclude

在文件末尾添加一行:

*.temp.*

这意味着忽略所有中间包含 “temp” 的文件,例如 contract-addresses.temp.json
在这里插入图片描述

四、修改文件名

为了让 Git 忽略已经被提交的文件,我们可以通过重命名该文件来避开 Git 的追踪。以 contract-addresses.json 为例,我们可以将其改名为 contract-addresses.temp.json。具体步骤如下:

  1. 手动或使用命令行工具重命名文件:
mv contract-addresses.json contract-addresses.temp.json
  1. 此时,新的文件名会符合 .git/info/exclude 中的规则,Git 将不再追踪这个文件。文件名就变为灰色说明已经忽略掉了
    在这里插入图片描述

五、提交和推送

重命名文件后,我们需要更新 Git 的记录。执行以下命令来提交更改并推送到远程仓库:

git add .
git commit -m 'fix: rename and ignore unwanted file'
git push

这样,我们就从 Git 的追踪中移除了旧的文件名,同时新的文件名也不会再被 Git 跟踪。

六、验证

要注意的是再重新生成之前要确保 .gitignore文件已经添加了文件名,否则生成了新的文件又会被git追踪到
在这里插入图片描述

最后,重新生成 contract-addresses.json 文件,确认它已经成功被忽略,不再出现在 git status 的输出中。这表明我们已经成功地将其从 Git 的追踪中移除。


总结

通过本文,我们详细介绍了如何忽略已经提交到 Git 仓库中的文件,包括确认文件是否已被提交、修改 .git/info/exclude 文件、重命名文件以避免追踪以及提交和推送更新等步骤。通过这些步骤,我们成功地将已经提交的文件从 Git 的追踪中移除,同时保证新的文件不会再被 Git 跟踪。这种方法特别适用于处理那些不小心提交的敏感信息或不必要的文件,确保它们不会再次被纳入 Git 的版本控制。同时,我们还强调了在生成新文件之前,确保 .gitignore 文件中已包含相应的忽略规则,以避免新文件再次被 Git 追踪。希望这篇文章能帮助你更好地管理和使用 Git 进行版本控制。如果你有任何疑问或建议,欢迎在评论区留言讨论。🌹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW中的Reverse String函数与字节序转换

在LabVIEW中,数据的字节序(也称为端序)问题通常出现在数据传输和存储过程中。字节序可以分为大端(Big-Endian)和小端(Little-Endian),它们分别表示高字节存储在低地址和低字节存储在…

培训第二十二天(mysql数据库主从搭建)

上午 1、为mysql添加开机启动chkconfig [rootmysql1 ~]# chkconfig --list //列出系统服务在不同运行级别下的启动状态注:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 要列出 systemd 服务…

2024.8.2(MySQL)

一、mysql 1、下载mysql软件包 [rootmysql ~]# yum -y install wget [rootmysql ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2、解压 [rootmysql ~]# tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 3、安装…

完美解决浏览器的输入框自动填入时,黄色背景问题,以及图标被遮住问题(最新)

用图说话↓↓↓ 首先用代码解决黄色背景问题,box-shadow颜色设置透明即可 :deep(input:-webkit-autofill) {box-shadow: 0 0 0 1000px transparent !important;/* 浏览器记住密码的底色的颜色 */-webkit-text-fill-color: #fff !important;/* 浏览器记住密码的字的…

【Linux 驱动】IMX6ULL input驱动

1. input子系统介绍 input 子系统分为 input 驱动层、input 核心层、input 事件处理层,最终给用户空间提供可访问的设备节点。 驱动层:输入设备的具体驱动程序,比如按键驱动程序,向内核层报告输入内容核心层:承上启下…

【docker】docker和镜像仓库

阿里云镜像仓库(Aliyun Container Registry)是阿里云提供的容器镜像存储和管理服务。它以Docker Registry协议为基础,为容器开发者提供了稳定可靠的镜像存储和分发服务。 使用阿里云镜像仓库,您可以将自己的Docker镜像推送到阿里…

lc209. 长度最小的子数组

题目: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 思路:…

非刚性ICP算法

非刚性ICP配准通过对V上的每个顶点v_i,利用仿射变换X_i来对模板网格进行变形。由此将V形变成为一个形变模板网格V^′,使得V^′与目标数据T的形状越接近越好,即V^′上的每个顶点在T上的对应点为该顶点在T中的最近点。该过程的目标函数如下&…

原生js: AI聊天功能, 仿照chatGPT问答功能

问: 现在我们需要一个ai聊天功能, 接口已经给出: 只要是message就是我们的数据, 是message_end就是结束信息, 其他的我们不需要管. 回答: 我们不使用传统的fetch请求这个接口, 而是使用sse, eventSource去请求, 当我们输入框回车 或者 点击元素, 获取到输入框中用户输入的值…

stm32入门学习10-软件I2C和陀螺仪模块

(一)I2C通信 (1)通信方式 I2C是一种同步半双工的通信方式,同步指的是通信双方时钟为一个时钟,半双工指的是在同一时间只能进行接收数据或发送数据,其有一条时钟线(SCL)…

MyBatis补充

控制类和dao层接口以及mapper中的xml是怎样的关联的? 在Mybatis中,控制类和dao层接口是通过mapper的xml文件进行连接的。 控制类调用dao层接口中的方法,通过接口实现进行访问数据库操作。dao层接口定义数据库操作的方法,提供给控制…

第6章>>实验7:PS(ARM)端Linux RT与PL端FPGA之间(通过Memory存储器进行通信和交互)《LabVIEW ZYNQ FPGA宝典》

1、实验内容 上一节实验里面介绍的Reg寄存器通道比较适合在PS端和PL端之间传递标量数据,也就是单个元素,如果要传递多个元素的数组或者连续数据流的话,Reg寄存器通道就不是很合适了。 本节实验我们向大家讲解如何借助Memory存储器通道在PS&am…

【Mind+】掌控板入门教程06 多彩呼吸灯

呼吸灯是指模仿动物一呼一吸使灯光由亮到暗逐渐变化,给人以安静沉稳的感觉。电子产品中经常会使用不同色彩的呼吸灯,起到很好的视觉提醒效果。 这个项目中我们将带领大家用掌控板制作一个颜色和亮度一起变化的多彩呼吸灯! 项目示例 …

编程深水区之并发④:Web多线程

Node的灵感来源于Chrome,更是移植了V8引擎。在Node中能够实现的多线程,在Web环境中自然也可以。 一、浏览器是多进程和多线程的复杂应用 在本系列的第二章节,有提到现代浏览器是一个多进程和多线程的复杂应用。浏览器主进程统管全局&#xf…

vue动态规则

vue动态规则 在Vue中&#xff0c;可以使用动态规则来实现灵活的表单验证和输入限制。动态规则允许你根据特定条件或动态数据来定义验证规则。 以下是一个示例&#xff0c;展示如何在Vue中使用动态规则&#xff1a; <template><div><input v-model"inputVa…

LVS--DR模式

目录 1 DR模式原理 2 DR模式请求回复过程 3 实验环境 4 开始实验 4.1 配置实验环境 4.2 Router 配置路由转发 4.3 LVS 设置转发规则 4.4 解决vip响应问题 4.5 Web1配置 4.6 Web2配置 5 测试效果 1 DR模式原理 当用户向负载均衡调度器&#xff08;Director Server&#xff09;发…

如何用数字便签管理工作任务?

在快节奏的工作环境中&#xff0c;我们每天都需要处理大量的工作任务。如果仅仅依靠个人的记忆力和精力&#xff0c;很容易导致任务遗漏或者延误。随着数字化技术的发展&#xff0c;选择一款功能强大的数字便签软件已经成为我们管理工作任务的更好选择。 在众多的数字便签软件…

Java零基础之多线程篇:讲解并发集合

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

c语言11天笔记

函数的概述 函数&#xff1a;实现一定功能的&#xff0c;独立的代码模块。我们的函数一定是先定义&#xff0c;后使用。 使用函数的优势&#xff1a; 1. 我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数&#xff0c;减少代码量。 2. 借助函数可以减…

4.6.长短期记忆网络(LSTM)

长短期记忆网络(LSTM) ​ 长短期记忆网络的设计灵感来自于计算机的逻辑门。 长短期记忆网络引入了记忆元&#xff08;memory cell&#xff09;&#xff0c;或简称为单元&#xff08;cell&#xff09;。 有些文献认为记忆元是隐状态的一种特殊类型&#xff0c; 它们与隐状态具有…