1. 程式人生 > >git 取消檔案跟蹤

git 取消檔案跟蹤

隨筆 - 105  文章 - 7  評論 - 23

在使用git的時候,有些檔案是不需要上傳的,所以就可以修改   .gitignore 

例如:

如果是對所有檔案都取消跟蹤的話,就是

git rm -r --cached .   //不刪除本地檔案

git rm -r --f .   //刪除本地檔案

對某個檔案取消跟蹤

git rm --cached readme1.txt    刪除readme1.txt的跟蹤,並保留在本地。

git rm --f readme1.txt    刪除readme1.txt的跟蹤,並且刪除本地檔案。

然後git commit 即可。但是git status檢視狀態時還是會列出來

每次使用git status 檢視狀態時總是會列出被跟蹤的檔案,可以通過 .gitignore檔案來達到目的

在git init 的目錄下建立.gitignore檔案,git官方提供的有 該檔案,可以加以修改使用

例:

這樣被濾掉的檔案就不會出現被上傳

.gitignore 還可以指定將哪些檔案新增到版本管理中:

在上面的語法前面加上   !         即可

千萬要注意:

如果你在建立.gitignore檔案之前就已經push專案了,那麼即時你在.gitignore檔案中寫入新的規則,這些規則也不會起作用。

有時候在專案開發過程中,突然心血來潮想把某些目錄或檔案加入忽略規則,按照上述方法定義後發現並未生效,原因是.gitignore只能忽略那些原來沒有被track的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的。那麼解決方法就是先把本地快取刪除(改變成未track狀態),然後再提交:

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

如果還是不行的話

在先將想要取消追蹤的檔案移到專案目錄外),並提交,然後提交後再將剛剛移出的檔案再移入專案中即可

 注意:
不要誤解了 .gitignore 檔案的用途,該檔案只能作用於 Untracked Files,也就是那些從來沒有被 Git 記錄過的檔案(自新增以後,從未 add 及 commit 過的檔案)。
如果檔案曾經被 Git 記錄過,那麼.gitignore 就對它們完全無效。