给Git仓库添加.gitignore:清理、删除、排除被Git误添加的临时文件

简介: 本文介绍了如何为Git仓库添加`.gitignore`文件来排除不需要跟踪的临时文件,并展示了如何删除已经被提交的临时文件缓存,以清理Git仓库中的不必要文件。

一、前言

最近维护代码过程中,发现某APP代码库里被提交了许多临时文件,而这些临时文件每次都会变化,所以导致每次修改提交时候,都会出行他们的身影,非常烦人。其原因,很明显是没有包含.gitignore文件,楼下,就介绍加上.gitignore的方法。

二、发现提交的临时文件

如下,发现许多临时文件目录,如 .idea 被提交到了版本库,导致每次git status很难分清自己修改的文件,所以需要将它们去掉。


Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。

安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows

PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting> git status .
On branch master_liebao
Your branch is up to date with 'origin/master_liebao'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   app/src/main/java/com/kingboard/vavatvsettings/activity/bluetooth/BluetoothDeviceManagerActivity.java
        modified:   app/src/main/java/com/kingboard/vavatvsettings/fragment/currency/MachineFragment.java
        modified:   app/src/main/res/values-zh-rCN/strings.xml
        modified:   app/src/main/res/values-zh-rTW/strings.xml
        modified:   app/src/main/res/values/strings.xml
        modified:   app/src/main/res/xml/menu_child_currency_machine.xml

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   .gradle/6.1.1/executionHistory/executionHistory.bin
        modified:   .gradle/6.1.1/executionHistory/executionHistory.lock
        modified:   .gradle/6.1.1/fileHashes/fileHashes.bin
      ……  省略  ……
        modified:   .idea/modules/settingframework/VAVATvSettings.settingframework.main.iml
        modified:   .idea/modules/settingframework/VAVATvSettings.settingframework.unitTest.iml
        modified:   app/build.gradle
        modified:   local.properties

三、去掉临时文件的方法

3.1 添加.gitignore

文件 .gitignore内容如下 ,将需要排除的文件、文件夹添加进入

*.iml
.gradle
.idea
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting> git add .gitignore

3.2 删除临时文件缓存

如本案例,许多临时文件已经被提交到版本库,所以要将他们删除

PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting> git rm -r --cached .gradle
PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting> git rm -r --cached .idea
PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting> git commit -m "add .gitignore"

可见删除打印/提交打印:

rm '.idea/.gitignore'
rm '.idea/.name'
……  省略 ……
rm '.idea/modules/settingframework/VAVATvSettings.settingframework.iml'
rm '.idea/modules/settingframework/VAVATvSettings.settingframework.main.iml'
rm '.idea/modules/settingframework/VAVATvSettings.settingframework.unitTest.iml'
rm '.idea/vcs.xml'
PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting> git commit -m "add .gitignore"
[master_liebao d0ddbcc] add .gitignore
 112 files changed, 14 insertions(+), 2522 deletions(-)
 create mode 100644 .gitignore
……  省略 ……
 delete mode 100644 .idea/modules/settingframework/VAVATvSettings.settingframework.main.iml
 delete mode 100644 .idea/modules/settingframework/VAVATvSettings.settingframework.unitTest.iml
 delete mode 100644 .idea/vcs.xml
PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting>

3.3 添加后的效果

PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting> git status
On branch master_liebao
Your branch is ahead of 'origin/master_liebao' by 1 commit.
  (use "git push" to publish your local commits)

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   app/build.gradle
        modified:   gradle.properties

PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting>

在这里插入图片描述

相关文章
|
2月前
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
200 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
1月前
|
开发工具 git 索引
怎么取消对project.private.config.json这个文件的git记录
通过以上步骤,您可以成功取消对 `project.private.config.json`文件的Git记录。这样,文件将不会被包含在未来的提交中,同时仍保留在您的工作区中。
61 28
|
2月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
98 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
2月前
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
45 0
|
4月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
144 2
|
5月前
|
网络协议 网络安全 开发工具
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
|
前端开发 开发工具 git
一个 git 仓库下拥有多个项目的 git hooks 配置方案
一个 git 仓库下拥有多个项目的 git hooks 配置方案
248 0
|
存储 网络安全 开发工具
百度搜索:蓝易云【Git多账号多仓库配置SSH?】
通过按照以上步骤配置SSH,您将能够在Git中使用多个账号和多个仓库,同时保持它们之间的独立性。请确保在配置和使用时注意使用正确的账号和仓库。
71 0
|
Linux Shell 网络安全
|
网络安全 开发工具 数据安全/隐私保护
版本管理·玩转git(远程仓库配置和配置公钥免密登录)
版本管理·玩转git(远程仓库配置和配置公钥免密登录)
215 0
版本管理·玩转git(远程仓库配置和配置公钥免密登录)

相关实验场景

更多