如題,之所以將文件添加進(jìn)了.gitignore文件但不生效,是因?yàn)樵撐募呀?jīng)被add進(jìn)git倉庫了,已經(jīng)被git托管了,這時(shí)git就沒法ignore了。解決辦法是先用git rm --cached將這些文件從git倉庫中取消托管并提交,然后.gitignore文件才會(huì)生效。詳細(xì)見如下描述。
已經(jīng)添加到git倉庫中的文件,如果在.gitignore中加入忽略,是不會(huì)生效的,因?yàn)樗麄円呀?jīng)添加到git倉庫中了。
要先git rm --cached
在git倉庫中刪除這些文件,然后再用git commit 提交這個(gè)刪除操作。然后,.gitignore中對這些文件的忽略才會(huì)生效。
注意:git rm --cached只是讓git不再托管這些文件,一定要加上--cached選項(xiàng),如果不加,git不僅刪除此文件的托管關(guān)系,還會(huì)從硬盤上刪除此文件,可怕~~
例:
mokar@ubuntu:~/temp/555$ tree
.
├── aa
│ └── aa.c
└── bb
└── bb.c
此例中,aa bb文件夾下兩個(gè)文件都已經(jīng)git add了:
mokar@ubuntu:~/temp/555$ git status
On branch master
nothing to commit, working directory clean
此時(shí)編寫.gitignore文件,將bb文件夾下的文件忽略掉,不會(huì)生效:
mokar@ubuntu:~/temp/555$ cat .gitignore
bb/
將ignore文件提交。
此時(shí)改動(dòng)bb.c看看:
mokar@ubuntu:~/temp/555$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: bb/bb.c
提示有改動(dòng),按理說,添加了ignore,應(yīng)該不會(huì)提示的,但是因?yàn)槲覀儼裝b.c添加到git中了,所以git不會(huì)忽略bb.c的改動(dòng)。
此時(shí),我們用git rm --cached
將bb.c從git中移除。
我們先要把bb.c的改動(dòng)提交。然后再rm
mokar@ubuntu:~/temp/555$ ga //git add .
mokar@ubuntu:~/temp/555$ gs //git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: bb/bb.c
mokar@ubuntu:~/temp/555$ gcm //git commit -m "sss"
[master 077628f] add bb.c
1 file changed, 1 insertion(+)
git rm --cached:
mokar@ubuntu:~/temp/555$ git rm --cached bb/bb.c
rm 'bb/bb.c'
mokar@ubuntu:~/temp/555$ gs
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: bb/bb.c
此時(shí)提示bb/bb.c被刪了。
我們再commit 一下:文章來源:http://www.zghlxwxcb.cn/news/detail-438836.html
mokar@ubuntu:~/temp/555$ git commit -m "ddd"
[master 0bac556] ddd
1 file changed, 1 deletion(-)
delete mode 100644 bb/bb.c
mokar@ubuntu:~/temp/555$ gs
On branch master
nothing to commit, working directory clean
然后我們再改一下bb/bb.c,就會(huì)發(fā)現(xiàn)不會(huì)再提示bb.c中有改動(dòng)了。文章來源地址http://www.zghlxwxcb.cn/news/detail-438836.html
到了這里,關(guān)于git將文件或目錄添加進(jìn)了.gitignore文件,為什么不生效?的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!