1. 程式人生 > >Git使用Gitignore建立專案過濾規則

Git使用Gitignore建立專案過濾規則

在進行協作開發程式碼管理的過程中,常常會遇到某些臨時檔案、配置檔案、或者生成檔案等,這些檔案由於不同的開發端會不一樣,如果使用git add . 將所有檔案納入git庫中,那麼會出現頻繁的改動和push,這樣會引起開發上的不便。

Git可以很方便的幫助我們解決這個問題,那就是建立專案檔案過濾規則。

Git中提供兩種過濾機制,一種是開放模式(全域性過濾機制,即對所有的git都適用);另一種是保守模式(針對某個專案使用的過濾規則)。個人傾向於第二種。

(一)開放模式負責設定過濾哪些檔案和資料夾

例如:

過濾資料夾設定:

/maigade/

過濾檔案設定

指定過濾某種型別的檔案:

*.zip
*.rar
*.via
*.tmp
*.err
指定過濾某個檔案

/maigade/do.c

/maigade/if.h

(二)保守模式負責設定哪些檔案不被過濾,也就是哪些檔案要被跟蹤。

跟蹤某個資料夾

!/plutommi/mmi

跟蹤某類檔案

!*.c

!*.h

跟蹤某個指定檔案

!/plutommi/mmi/mmi_features.h

(三)配置.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/
1:# 此為註釋  ,將被git忽略 2:*.a  忽略所有.a結尾的檔案 3:!lib.a   但lib.a除外 4:/todo   僅僅忽略專案根目錄下的todo  檔案,不包括subdir/todo 5:build/    忽略build/目錄下的所有檔案 6:doc/*.txt  忽略doc/notes.txt,但不包括doc/server/arch.txt

然後呼叫git add. ,執行 git commit即可。

備註:

.gitignore只適用於尚未新增到Git庫的檔案。如果已經添加了,則需用git rm移除後再重新commit。