zoukankan      html  css  js  c++  java
  • git 创建 .gitignore 文件过滤规则及注意事项

    以下转自:http://blog.longwin.com.tw/2010/01/git-ignore-howto-set-zim-2010/

    環境

    • Git 所管理的專案名稱、位置: /home/user/doc

    下述範例是以 Zim 為主, Zim 是一套桌面的 Wiki 編輯器, 裡面寫的內容都會存成 txt 檔, .zim 的目錄下會存 "*.cache" 和 "zim 本身自己的設定值".

    Zim 在剛開始建立完成後, 就使用下述步驟:

    1. cd /home/user/doc
    2. git init
    3. git commit -a
    4. git push #一開始沒有設定 .gitignore, 所以會將 .zim/* 都 commit 進去

    於每次開啟 Zim 後, 都會出現

    modified:   .zim/history.cache
    modified:   .zim/index.cache

    造成 git commit -a 的麻煩 (因為多台電腦要同步時, index.cache / history.cache 都會出現需要 merge 的狀況), 所以想設定 .gitignore 來把它拿掉. (方便 git commit -a)

    設定 .gitignore 位置、方法

    設定 Git ignore 的方式都一樣, 有下面幾個地方可以設定, 依自己喜好 / 需求來設定即可.(設定位置)

    • vim ~/.gitignore # 對所有 Git 的專案生效 (自己的 home 目錄下)
    • vim doc/.gitignore # doc 是專案名稱, 用這個的好處是, 將 .gitignore commit 進去, 此 .gitignore 可以隨著專案到處走. (Git 管理的 Project 目錄下)
    • vim doc/.git/info/exclude # 只有單獨於此處 .git 生效 (Project 的 .git/info/exclude 檔案)
    • 這幾個地方都可以設定, 可以使用 * 等符號. 詳可見: gitignore(5) Manual Page

    於 .zim 的狀況, 可以設定下述: (設定方法)

    • 所有 . 開頭的目錄 / 檔案都不 commit

      .*

    • .zim 目錄內 的 所有 *.cache 都不 commit

      .zim/*.cache

    • 只有 .zim/history.cache, .zim/index.cache 不 commit

      .zim/history.cache
      .zim/index.cache

    .gitignore 無法生效 的 問題修復

    在測試狀況都是正常, 但是在 Zim 實際使用就有問題, 每次都出現 modified 的解法.

    解法
    1. 因為第一次 commit 已經將 .zim/*.cache commit 進去了, 所以每次它都會去檢查, 造成都出現 modified 的狀況.
    2. git rm -f .zim/history.cache
    3. git rm -f .zim/index.cache
    4. git commit # 即可
    5. 再將 .gitignore 設定好, 就可以避免掉這些狀況囉~

    (---插一句:主要是如果想利用.gitignore的过滤功能过滤文件,则必须不能将文件提交到git仓库中,如果在设定过滤法则之前将文件提交过,则过滤功能将不再生效,所以必须在文件提交之前设定过滤规则。---)

    範例 -我的 Zim 設定方式

    1. cd /home/user/doc
    2. vim .gitignore

      .zim/*.cache

    3. git add .gitignore
    4. git commit
    5. git push

    ------------------------------我是分割线-----------------------------------------------

    git 创建 .gitignore 文件 建立项目过滤规则

    转自:http://hi.baidu.com/orangejackylee/item/d34091bc271844aaebba9377

    创建 .gitignore 随意设置想跟踪哪些文件 和不跟踪哪些文件.

    1.在项目根目录下建立 .gitignore 文件

    2.   .gitignore文件过滤有两种模式,开放模式和保守模式
    2.1开放模式负责设置过滤哪些文件和文件夹

    eg:

    过滤文件夹设置:

    /mtk/       表示过滤这个文件夹

    过滤文件设置

    指定过滤某种类型的文件:
    *.zip
    *.rar
    *.via
    *.tmp
    *.err

    指定过滤某个文件:
    /mtk/do.c

    /mtk/if.h

    2.2 b保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。
    跟踪某个文件夹

    !/plutommi/mmi

    跟踪某类文件

    !*.c

    !*.h

    跟踪某个指定文件

    !/plutommi/mmi/mmi_features.h

    3.配置.gitignore 的简易原则

    采 用共享模式与保守模式结合配置的办法。eg:一个文件夹下有很多文件夹和文件,而我只想跟踪其中的一个文件,这样设置就可以满足这种情况,先用共享模式把 整个目录 都设置为不跟踪,然后再用保守模式把这个文件夹中想要跟踪的文件设置为被跟踪,配置很简单,就可以跟踪想要跟踪的文件。

    4.我做mtk项目用到的 .gitignore 文件的具体配置如下:

    #######开放模式############

    ###############
       folder   #
    ###############
    /_souceInsight_/
    /build/
    /MoDIS/
    /Doc/
    /mtk_lib/
    /scripts/
    /header_temp/
    /tools/AudioResGen/
    /tools/GLBOptionSwtichRef/
    /tools/GMSL/
    /tools/MinGW/
    /tools/MSYS/
    /tools/NewMMIResourceTool/
    /tools/NVRAMStatistic/
    /tst/
    /verno/
    /plutommi/tool/
    /plutommi/Customer/ResGenerator/
    /plutommi/Customer/CustResource/
    /plutommi/Customer/LcdResource/
    /plutommi/Customer/Images/
    /plutommi/mmi/Framework/EventHandling/EventsInc/mmi_menu_handlers.h
    /vendor/font/MTK/official/project/plutommi/content/inc/
    /vendor/font/MTK/official/project/plutommi/content/src/



    ###############
     fixed file #
    ###############
    .gitignore
    *.exe
    *.txt
    *.def
    *.dsp
    *.lib
    *.doc
    *.dll
    *.lnt
    *.pm
    *.xls
    *.dbg
    *.DBG
    *.o
    *.plg
    *.keep


    ###############
     temp file  #
    ###############
    ~*
    *.log
    *.cmm
    *.men
    *.ini
    *.fig
    *.cmp
    *.tmp

    ###############
       script   #
    ###############
    *.bat

    #########保守模式############
    !/plutommi/Customer/CustResource/PLUTO_MMI/
    !/plutommi/Customer/LcdResource/MainLcd128X160/
    !/plutommi/Customer/Images/PLUTO128X160/image.zip
    !/vendor/font/MTK/official/project/plutommi/content/inc/MainLcd128X160/
    !/vendor/font/MTK/official/project/plutommi/content/src/MainLcd128X160/

  • 相关阅读:
    正则表达式--验证中国手机号
    PostgreSQ数据库安全连接请求问题
    golang时间正反格式化
    Git 分支管理和冲突解决
    golang交叉编译
    ps命令
    Redis应用场景
    SecureCRT for Mac
    Redis作者谈Redis应用场景
    redis 五种数据的应用场景
  • 原文地址:https://www.cnblogs.com/ligun123/p/2954166.html
Copyright © 2011-2022 走看看