場景描述
在使用git的時候,項目開始我們設置了一些需要忽略的文件和文件夾,比如一些工程文件和項目依賴庫,以免多個開發者本地環境不一樣和工程文件過大的問題。但后期發現那些已經被我們忽略掉的文件需要重新添加或者忽略的文件夾里面有某個文件(夾)是需要大家一致的,需要設置一下排除,下面我們針對這兩種場景講一下解決辦法
設置忽略排除
設置忽略我們通常是在.gitignore文件中設置,比如在laravel框架中我們設置忽略整個vendor文件夾,則在.gitignore中添加如下路徑
/vendor/*
- 1
路徑中的星號表示所有,如果需要這是后續的排除,這里的星號很重要
接下來我們設置忽略的文件夾中有一個文件夾里面的內容不需要忽略
!/vendor/laravel/framework/src/Illuminate/Auth/
- 1
!表示排除的意思,當然如果忽略某個文件就直接指定就行了,比如
!/vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php
- 1
好,設置忽略和設置忽略排除,這里就基本行了
重新添加已經被忽略過的文件(夾)
重新添加已經被忽略過的文件時,我們僅僅使用git add是不行的,因為git倉庫中根本沒有那個文件,這時候我們需要加上-f參數來強制添加到倉庫中,然后在提交。比如上面設置了忽略排除的文件TokenGuard.php我們需要重新加入
git add -f /vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php
- 1
然后在commit和push就行了
忽略已經提交過的文件
這里說點題外話,有的時候我們需要忽略掉以前提交過的文件,因為git已經索引了該文件所以我們先要刪除掉該文件的緩存,如文件User.php已經提交過了,現在我們想忽略,這是我們先在.gitignore中設置該文件為忽略,然后我們執行如下命令刪除緩存