首页 > 其他分享 >如何忽略已经提交到 Git 仓库中的文件

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

时间:2024-08-10 23:51:59浏览次数:14  
标签:文件 git 仓库 忽略 Git 提交 追踪

文章目录


前言

在日常开发中,我们常常会遇到这样的情况:不小心将不应追踪的文件提交到了 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 进行版本控制。如果你有任何疑问或建议,欢迎在评论区留言讨论。

标签:文件,git,仓库,忽略,Git,提交,追踪
From: https://blog.csdn.net/Huahua_1223/article/details/140968305

相关文章

  • Github-vscode联合使用保姆及教程
    Github-VScode联合使用保姆及教程update:2024/8/10_Karenbluu文章目录Github-VScode联合使用保姆及教程1.Git和Github分别是什么2.安装2.1git安装2.2vscode安装3.使用Github3.1拉取项目3.1.1拉取方法3.1.2注意事项3.2寻找合适的项目3.3创建自己的git......
  • region format is illegal, only digit, letter and - is allowed!(.env文件中行内注释
    引子:一个图片上传功能,用腾讯云cos,一直找不到错误原因,结果是.env文件中的行内注释!错误描述上传图片代码defaction_upload_img_cloud(request):user=CustomUser.objects.get(id=request.user_id)file=request.FILES['img']file_name=file.nameun......
  • GitHub每日最火火火项目(8.9)
    项目名称:bghira/SimpleTuner项目介绍:SimpleTuner是一个通用的微调工具包,主要面向StableDiffusion2.1、StableDiffusion3、DeepFloyd和SDXL等模型。它旨在为这些模型提供一种便捷的微调方式,以适应不同的应用场景和需求。通过SimpleTuner,用户可以调整模型的参数,提高模......
  • 入门岛3-Git 的使用与项目构建
    任务概览任务1:破冰活动:自我介绍任务2:实践项目:构建个人项目参考:git流程:csdn1csdn2任务1:破冰活动:自我介绍1.Git是一种开源的分布式版本控制系统,广泛应用于软件开发领域,尤其是在协同工作环境中。它为程序员提供了一套必备的工具,使得团队成员能够有效地管理和......
  • github项目-创建一个新分支
    在远程仓库创建一个分支实际上是在本地创建一个分支,然后将该分支推送到远程仓库。这是因为在Git中,您不能直接在远程仓库创建分支,而需要先在本地创建分支,然后将该分支推送到远程仓库。以下是创建并推送新分支到远程仓库的步骤:创建新分支:使用gitcheckout-b<branch-n......
  • Ubuntu的Bash终端美化 + 添加Git分支显示 + Zsh终端 + Zint代码补全功能
    一、下载Git#从远程仓库克隆git文件到/opt目录yammie@my-pc>/home/yammie$cd/optyammie@my-pc>/opt$gitclonehttps://github.com/git/git.git二、复制git-completion.bash和git-prompt.sh到home/yammie的目录下yammie@my-pc>/opt$cd./gitya......
  • win+jenkins+git+allure+tomcat+jdk部署(万人坑)
    万人坑:之所以叫万人坑,是一些网站真的是非常非常非常坑,且不说按照他们的方法一次都没成功,还遇到了各种千奇百怪的问题,浪费了本人3.1415926h的时间,真想给他们竖起一个超大号的倒拇指。下面开始踩坑之路!一.本地环境jdk:1.8tomcat:8.5.59jenkins:2.264git:2.34.0allure:2.17.3二.下......
  • Github 2024-08-10开源项目日报 Top10
    根据GithubTrendings的统计,今日(2024-08-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目4JavaScript项目2TypeScript项目2C#项目1Dockerfile项目1RichTextFormat项目1Swift项目1Jupyt......
  • GitLab 之 Git LFS 大文件存储的配置
    参考https://cloud.tencent.com/developer/article/1010589LFS介绍Git大文件存储(LargeFileStorage,简称LFS)目的是更好地把大型二进制文件,比如音频文件、数据集、图像和视频等集成到Git的工作流中。我们知道,Git存储二进制效率不高,因为它会压缩并存储二进制文件的所有完整......
  • linux 搭建yum仓库
    yum  Yum(全称为YellowdogUpdater,Modified),能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。自己本身也可以做yum服务器,本身可以根据光盘镜像做yum服务器。搭建yum服务器:(1)本地yum(服务器不能上......