Git中有一個(gè)非常重要的一個(gè)文件-----.gitignore
1、當(dāng)然如果已經(jīng)push了怎么辦?當(dāng)然也有解決方法子库,如下:
有時(shí)候在項(xiàng)目開發(fā)過程中痴腌,突然心血來潮想把某些目錄或文件加入忽略規(guī)則,按照上述方法定義后發(fā)現(xiàn)并未生效,原因是.gitignore只能忽略那些原來沒有被track的文件唤崭,如果某些文件已經(jīng)被納入了版本管理中,則修改.gitignore是無效的脖律。那么解決方法就是先把本地緩存刪除(改變成未track狀態(tài))浩姥,然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
?
2、在版本管理的根目錄下(與.Git文件夾同級(jí))創(chuàng)建一個(gè) .gitignore(gitignore是隱藏文件状您,所以前面有個(gè)點(diǎn))
創(chuàng)建命令:gitignore - Specifies intentionally untracked files to ignore
首先要強(qiáng)調(diào)一點(diǎn)勒叠,這個(gè)文件的完整文件名就是“.gitignore”,注意最前面有個(gè)“.”膏孟。這樣沒有擴(kuò)展名的文件在Windows下不太好創(chuàng)建眯分,這里給出win7的創(chuàng)建方法:創(chuàng)建一個(gè)文件,文件名為:“.gitignore.”柒桑,注意前后都有一個(gè)點(diǎn)弊决。保存之后系統(tǒng)會(huì)自動(dòng)重命名為“.gitignore”。一般來說每個(gè)Git項(xiàng)目中都需要一個(gè)“.gitignore”文件魁淳,這個(gè)文件的作用就是告訴Git哪些文件不需要添加到版本管理中飘诗。實(shí)際項(xiàng)目中,很多文件都是不需要版本管理的界逛,比如Python的.pyc文件和一些包含密碼的配置文件等等昆稿。
項(xiàng)目中有clist.h clist.c main.c三個(gè)文件,編譯執(zhí)行后息拜,生成了三個(gè)文件 clist.o main.o main(執(zhí)行文件)溉潭。這三個(gè)文件是不需要進(jìn)行版本管理的,所以需要忽略這些文件少欺,使用 git stauts查看后喳瓣,發(fā)現(xiàn)這三個(gè)文件也是處于 Untracked files狀態(tài)。而實(shí)際上我們是想忽略他赞别。
使用gitignore文件來解決這個(gè)問題畏陕,步驟是:
[plain] view plain copy
S1: touch .gitignore #創(chuàng)建gitignore隱藏文件
S2: vim .gitignore #編輯文件,加入指定文件
#下面是我的gitignore文件的內(nèi)容
#忽略gitignore文件
.gitignore
#忽略后綴名為.o和.a的文件
*.[oa]
#顯示指定忽略名稱為main的文件
main
文件.gitignore的格式規(guī)范:
A:#為注釋
B:可以使用shell所使用的正則表達(dá)式來進(jìn)行模式匹配
C:匹配模式最后跟"/"說明要忽略的是目錄
D:使用仿滔!取反(例如目錄中包含 test.a惠毁,并且gitignore文件中包含 *.[oa],如果在文件中加入 堤撵!test.a 表明忽略除test.a文件以外的后綴名為.a或者.o的文件)
配置完.gitignore文件后仁讨,執(zhí)行g(shù)it status命令羽莺,會(huì)發(fā)現(xiàn)那三個(gè)文件不再是Untracked files了实昨,也就完成了忽略指定文件的功能。
eg:
# 此為注釋 – 將被 Git 忽略
*.a ? ? ? ? ? ? ? ? ? ? ? ? # 忽略所有 .a 結(jié)尾的文件
!lib.a ? ? ? ? ? ? ? ? ? ? ?# 但 lib.a 除外
/TODO ? ? ? ? ? ? ? ? ? # 僅僅忽略項(xiàng)目根目錄下的 TODO 文件盐固,不包括 subdir/TODO
build/ ? ? ? ? ? ? ? ? ? ? ?# 忽略 build/ 目錄下的所有文件
doc/*.txt ? ? ? ? ? ? ? ? ?# 會(huì)忽略 doc/notes.txt 但不包括 doc/server/arch.txt
3荒给、 .gitignore最強(qiáng)配置清單 如下:
/gradle/wrapper/gradle-wrapper.properties
##----------Android----------
# build
*.apk
*.ap_
*.dex
*.class
bin/
gen/
build/
# gradle
.gradle/
gradle-app.setting
!gradle-wrapper.jar
build/
local.properties
##----------idea----------
*.iml
.idea/
*.ipr
*.iws
# Android Studio Navigation editor temp files
.navigation/
##----------Other----------
# osx
*~
.DS_Store
gradle.properties