一、配置 .gitignore的原因
被加進“.gitignore”的表示不會被Git跟蹤,在實際開發過程中,有很多因素導致有些文件不應該加入版本控制中,如:
不同的電腦,開發軟件的版本不同,以及軟件的一些配置不同,還有編譯生成的文件等等~~並且在開發過程中會遇到很多沖突,因此就需要對“.gitignore"文件進行好好的配置。
二、 .gitignore語法
首先說明“.gitignore"文件的語法:(詳情請查詢官方文檔)
1. 用#來注釋語句,在#后面的內容會被Git忽略
2. 可以用空行來間隔增加可讀性與美觀
3. 以斜桿(/) 結尾的字符,被當做文件夾處理,文件夾下的所有文件將被忽略
如 build/ 表示Git會忽略 build/ 目錄下的所有文件(不過似乎不加也一樣可以,但是必須保證這是一個目錄,而不是某個文件)
4. 局部及全局的同名文件忽略問題
如 /TODO 表示Git僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO
如 doc/*.txt 表示Git會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
如 doc/**/*.txt 表示Git會忽略所有 doc目錄下的 txt 格式的文件
5. ".gitignore"使用glob 語法(簡化了的正則表達式)匹配:【
星號(*)匹配零個或多個任意字符
[abc]匹配任何一個列在方括號中的字符(要么匹配一個 a,要么匹配一個 b,要么匹配一個 c)——如 *.[oa]表明Git忽略所有以 .o 或 .a 結尾的文件
問號(?)只匹配一個任意字符;
如果在方括號中使用短划線分隔兩個字符,表示所有在這兩個字符范圍內的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的數字; [0-9a-zA-Z] 表示匹配所有 0 到 9 的數字和所有字母)
在某文件前加上感嘆號(!)取反,表明該文件除外。如
# 忽略所有 .a 結尾的文件
*.a
# 但 lib.a 除外
!lib.a
】
6.根目錄下的文件名稱前可以加/,也可以不加
三、我的 .gitignore文件(android studio)
# Gradle directory .gradle/ build/ # files for the dex VM *.dex #built application files *.apk *.ap_ # Java class files *.class # Local configuration file (sdk path, etc) local.properties .idea/workspace.xml .idea/libraries .idea/gradle.xml .idea/misc.xml # OSX files .DS_Store captures/ # generated files(studio中應該不需要) bin/ gen/ # Windows thumbnail db Thumbs.db
解釋:
local.properties 文件指向的絕對路徑在文件系統以上的SDK , 所以肯定不應該被版本化。
添加.gradle 忽略 gradle wrapper 東西,不應納入版本控制的
添加 .DS_Store 此文件夾是特定於Mac系統的,不應該進行版本控制
在IDEA 13 及早期版本中,dataSources.ids, datasources.xml can contain database passwords,所以要把它加入版本控制中, IDEA 14 解決了這個問題,所以不需要再加了.
有很多人都說要忽略 .iml 但是IntelliJ docs 表明.iml 必須要包含在版本控制中,所以,我就不添加 .iml了
四、網上流傳的用於Android的 .gitignore文件
Share the project .ipr file and all the .iml module files, don't share the .iws file as it stores user specific settings
# built application files *.apk *.ap_ # files for the dex VM *.dex # Java class files *.class # built native files(如果使用了第三方庫,就移除該項) *.o *.so # generated files bin/ gen/ # Ignore gradle files .gradle/ build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Eclipse Metadata .metadata/ # Mac OS X clutter *.DS_Store # Windows clutter Thumbs.db # Android Studio Navigation editor temp files .navigation/ # Android Studio captures folder captures/ # Intellij IDEA (see https://intellij-support.jetbrains.com/entries/23393067) .idea/workspace.xml .idea/tasks.xml #In IDEA 13 及早期版本中,dataSources.ids, datasources.xml 可以包含數據庫密碼.IDEA 14 解決了這個問題.所以可以不加 .idea/datasources.xml .idea/dataSources.ids