如何忽略已经提交到 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 进行版本控制。如果你有任何疑问或建议,欢迎在评论区留言讨论。🌹

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Angular项目,您可以使用.gitignore文件来指定要忽略文件文件夹,以便它们不会被提交Git存储库。以下是一些常见的Angular项目需要忽略文件文件夹: - node_modules/:这是所有依赖项的文件夹,通常很大,不需要提交Git。 - dist/:这是生成的构建文件夹,也不需要提交Git。 - *.log:日志文件通常会很大,不需要提交Git。 - /src/environments/environment.ts:这是包含环境变量的文件,通常与开发环境相关,不需要提交Git。 您可以在项目根目录下创建一个名为.gitignore的文件,并列出要忽略文件文件夹。例如,以下是一个典型的Angular项目的.gitignore文件: ``` # dependencies node_modules/ dist/ # logs and databases *.log *.sqlite # environment files /src/environments/environment.ts ``` 请注意,您可能需要根据您的项目情况进行调整。 ### 回答2: 在Angular项目,我们可以通过.gitignore文件来指定哪些文件文件夹应该被Git忽略,从而不会被提交到版本库。 首先,在Angular项目的根目录下创建一个名为.gitignore的文件,如果已经存在可以直接编辑该文件。 接下来,我们可以在.gitignore文件添加需忽略文件文件夹列表。这些文件文件夹将不会被Git跟踪和提交。一般来说,可以忽略一些与构建、依赖和配置相关的文件。 下面是一个示例的.gitignore文件: ``` # 忽略dist文件夹 /dist/ # 忽略node_modules文件夹 /node_modules/ # 忽略一些构建和配置文件 /*.js.map /*.js /*.d.ts /.angular.json /package-lock.json ``` 在上述示例,我们忽略了dist和node_modules文件夹,以及一些与构建和配置相关的文件。这样,当我们执行git提交命令时,这些被忽略文件将不会被包含在提交。 需要注意的是,已经Git跟踪的文件需要先从Git移除才能被忽略。可以使用以下命令来移除已经Git跟踪的文件: ``` git rm --cached <文件文件夹路径> ``` 在执行上述命令后,修改已保存的.gitignore文件,并重新提交。此时,被移除的文件将不再被Git跟踪,并且在之后的提交也不会被包含。 通过使用.gitignore文件来指定需忽略文件文件夹,我们可以有效地管理项目不需要被Git跟踪和提交文件,并确保版本库只包含必要的文件。 ### 回答3: 在Angular项目,我们可以使用.gitignore文件来告诉Git忽略某些文件文件夹的提交。下面是一些常见的在Angular项目需要忽略文件文件夹。 1. 节点依赖:在Angular项目,我们通常使用npm或者yarn来管理项目的依赖关系。这些依赖项通常存储在node_modules文件,由于这个文件夹通常非常庞大且包含了大量的第三方代码,所以我们可以选择将其加入到.gitignore文件。 2. 构建输出:当我们在Angular项目运行构建命令时,会生成一些构建产物,例如编译后的JavaScript文件或者打包后的应用程序。这些文件通常存储在dist文件,我们可以将其忽略以减少提交文件数量。 3. IDE生成的文件文件夹:不同的集成开发环境(IDE)可能会生成一些额外的文件文件夹,用于配置或者项目管理。例如,VSCode会生成一个.settings文件夹以保存项目的设置。我们可以根据自己使用的IDE,将这些文件文件夹加入到.gitignore文件。 4. 日志文件:一些应用程序或插件可能会生成日志文件,用于调试或错误报告。由于这些日志文件通常会不断增长,并且可能包含敏感信息,所以我们可以选择将它们加入到.gitignore文件。 可以在Angular项目的根目录下创建一个名为.gitignore的文件,并在其列出需要忽略文件文件夹,可以使用通配符来进行模糊匹配。当我们进行git提交时,Git会自动忽略这些文件文件夹。需要注意的是,已经提交git仓库文件,即使在.gitignore忽略,也不会被回退删除,需要手动删除或使用git命令进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值