• 给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 ..." 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 ..." to update what will be committed)
      (use "git restore ..." 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    三、去掉临时文件的方法

    3.1 添加.gitignore

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

    *.iml
    .gradle
    .idea
    .DS_Store
    /build
    /captures
    .externalNativeBuild
    .cxx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting> git add .gitignore
    
    • 1

    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"
    
    • 1
    • 2
    • 3

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

    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    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 ..." to update what will be committed)
      (use "git restore ..." to discard changes in working directory)
            modified:   app/build.gradle
            modified:   gradle.properties
    
    PS C:\Users\66176\Documents\works\mt9652\all_app\mtvsetting>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

  • 相关阅读:
    SLAM从入门到精通(编写第一个package)
    Unity HDRP 录制透明通道序列帧
    4.0 SDK Workshop 纪实:一起体验多人、多屏幕共享新功能
    CF1700D River Locks
    06 | 链表(上):如何实现LRU缓存淘汰算法?
    antdv使用a-cascader联级选择器实现自定义浮层样式
    某电商网站的数据库设计(6)——创建查询销售数据的视图
    【PCBA方案】快速测温体温计方案
    Redis集群服务器
    史上最全英语语法
  • 原文地址:https://blog.csdn.net/yyzsyx/article/details/127901359