.gitignore詳解(附上eclipse的java項目的 .gitignore文件)


今天講講Git中非常重要的一個文件――.gitignore。

首先要強調一點,這個文件的完整文件名就是“.gitignore”,注意最前面有個“.”。這樣沒有擴展名的文件在Windows下不太好創建,

這里給出win7的創建方法:

創建一個文件,文件名為:“.gitignore.”,注意前后都有一個點。保存之后系統會自動重命名為“.gitignore”

一般來說每個Git項目中都需要一個“.gitignore”文件,這個文件的作用就是告訴Git哪些文件不需要添加到版本管理中。

實際項目中,很多文件都是不需要版本管理的,比如Python的.pyc文件和一些包含密碼的配置文件等等。

這個文件的內容是一些規則,Git會根據這些規則來判斷是否將文件添加到版本控制中。

下面我們看看常用的規則:

/mtk/ 過濾整個文件夾

*.zip 過濾所有.zip文件

/mtk/do.c 過濾某個具體文件

*.sample    # 忽略所有 .sample 結尾的文件
!lib.sample    # 但 lib.sample 除外
/TODO    # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目錄下的所有文件
doc/*.txt   # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt

很簡單吧,被過濾掉的文件就不會出現在你的GitHub庫中了,當然本地庫中還有,只是push的時候不會上傳。

需要注意的是,gitignore還可以指定要將哪些文件添加到版本管理中:

!*.zip

!/mtk/one.txt

唯一的區別就是規則開頭多了一個感嘆號,Git會將滿足這類規則的文件添加到版本管理中。

為什么要有兩種規則呢?想象一個場景:我們只需要管理/mtk/目錄中的one.txt文件,這個目錄中的其他文件都不需要管理。那么我們就需要使用:

/mtk/

!/mtk/one.txt

假設我們只有過濾規則沒有添加規則,那么我們就需要把/mtk/目錄下除了one.txt以外的所有文件都寫出來!

最后需要強調的一點是,如果你不慎在創建.gitignore文件之前就push了項目,那么即使你在.gitignore文件中寫入新的過濾規則,這些規則也不會起作用,Git仍然會對所有文件進行版本管理。

那好,如何正確使用.gitignore呢?這也是一門大學問。是不是項目做到一半,然后再添加.gitignore呢?不是的,最好的是你項目剛創建,項目還沒有進行git版本控制的時候,首先在項目目錄下加入.gitignore文件,即首先對.gitignore進行版本控制,然后在對項目進行版本控制。但是如果你是后來才加入.gitignore呢?就可能會出現如下問題:

 


或者.DS_Store等文件不斷的提醒我又被修改了。。。只是因為這些文件先於.gitignore進行版本控制了。此時你可以使用如下命令來讓.gitignore忽視它:

git rm --cached -r 文件名

那么下次git就會忽視這些文件了。

 

簡單來說,出現這種問題的原因就是Git已經開始管理這些文件了,所以你無法再通過過濾規則過濾它們。

所以大家一定要養成在項目開始就創建.gitignore文件的習慣,否則一旦push,處理起來會非常麻煩。


轉載鏈接:  http://sentsin.com/web/666.html

附上eclipse的java項目的 .gitignore文件

/.settings/
/target/
 
# built application files
*.apk
*.ap_
 
# files for the dex VM
*.dex
 
# Java class files
*.class
*.jar
 
# generated files
bin/
gen/
 
# Eclipse project files
.classpath
.project
.DS_Store

其他版本

java git .gitignore常用規則

# Created by .ignore support plugin (hsz.mobi)
.gitignore

# Operating System Files 

*.DS_Store 
Thumbs.db 
*.sw? 
.#* 
*# 
*~ 
*.sublime-* 

# Build Artifacts 

.gradle/
build/
target/
bin/
dependency-reduced-pom.xml 

# Eclipse Project Files 

.classpath
.project
.settings/ 

# IntelliJ IDEA Files 

*.iml
*.ipr 
*.iws 
*.idea 

 

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

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

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

詳見:https://shiyousan.com/post/636470505667009340


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM