git-ignore文件規範與示例

在 git 中如果想忽略掉某個文件,不讓這個文件提交到版本庫中,可以使用修改根目錄中 .gitignore 文件的方法(如果沒有這個文件,則需自己手工建立此文件)。

1. java開發示例

下面這個可以直接拿來用,基本包含了常用的 IDE

/target/
!.mvn/wrapper/maven-wrapper.jar

### STS ###
.apt_generated
.classpath
.factorypath
.settings
.springBeans
.sts4-cache
bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/build/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### vscode ###
.vscode

### gradle
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar

### mvn 
.mvn

log/
### test ng result ###
test-output/

2. .gitignore 規則示例:

# 此爲註釋,將被 Git 忽略
*.sample			# 忽略所有 .sample 結尾的文件
!lib.sample			# 但 lib.sample 除外
/TODO				# 僅僅忽略項目根目錄下的 TODO 文件,不包括子目錄中的 /TODO
build/				# 忽略 build/ 目錄下的所有文件
doc/*.txt			# 忽略 doc/notes.txt 但不包括 doc/server/arch.txt
**/book.json		# 忽略所有目錄下的 book.json 文件,包括子目錄(需要 git 1.8.2 及其以上的版本才支持)
**/book/book.json	# 忽略任意層級下的 book/book.json 文件

3. 文件 .gitignore 的格式規範:

• 所有空行或者以註釋符號 # 開頭的行都會被 Git 忽略
• 可以使用標準的 glob 模式匹配
• 匹配模式最後跟反斜槓(/)說明要忽略的是目錄
• 要忽略指定模式以外的文件或目錄,可以在模式前加上驚歎號(!)取反

4. 所謂的 glob 模式是指 shell 所使用的簡化了的正則表達式

1. * 匹配零個或多個任意字符
2. ? 只匹配一個任意字符
3. [abc] 匹配任何一個列在方括號中的字符(這個例子要麼匹配一個 a,要麼匹配一個 b,要麼匹配一個 c)
4. [0-9] 表示匹配 0到9 中的任意一個數字, [a-c] 匹配 a到c 中的任意一個字母

5. .gitignore 規則不生效的解決辦法

把某些目錄或文件加入忽略規則,按照上述方法定義後發現並未生效,原因是.gitignore只能忽略那些原來沒有被追蹤的文件,如果某些文件已經被納入了版本管理中,則修改.gitignore是無效的。
那麼解決方法就是先把本地緩存刪除(改變成未被追蹤狀態),然後再提交。

git rm -r --cached .
git add .
git commit -m 'update .gitignore'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章