起因:
- 使用 phpstorm 新建一個文件時, 創(chuàng)建了一個空的本地 git 版本庫 (
git init), 并執(zhí)行了全部提交(git add -A; git commit); - 對項(xiàng)目進(jìn)行開發(fā)后, 要進(jìn)行第一次提交,
git status發(fā)現(xiàn) phpstorm 的相關(guān)文件.idea也發(fā)生了變化modified, 然而這是不應(yīng)該提交到版本庫的, 所以要將其放到.gitignore中 - 此時,
git status依然會出現(xiàn).idea發(fā)生了改變, 但未添加到暫存區(qū), changes not staged for commit - 所以不僅當(dāng)前工作區(qū)中要修改
.gitignore文件, 版本庫中的已經(jīng)提交過的版本中也要刪除這個文件夾, 使用
git rm -r folder_path --cached命令即可
解決辦法:
-
.gitignore文件中添加要忽略的文件 - 執(zhí)行
git rm -r folder_path --cached刪除版本庫中對應(yīng)的文件夾
說明:
git rm -r folder_path --cached 中
-
rm為remove-- 刪除, -
-r為recursion-- 遞歸(刪除文件夾里面的全部子文件和子文件夾, 類似于linux操作中chmod -R 777 folder_path中的-R) -
folder_path為指定的要刪除的文件夾路徑 -
--cached指的是刪除版本庫而保留本地的文件(夾), 如果不加上--cached, 那么本地的文件也會刪除
如果需要刪除暫存區(qū)的文件, 同時工作區(qū)也不需要這個文件了, 可以使用
git rm -r folder_path
如果需要刪除暫存區(qū)的文件, 但工作區(qū)保留這個文件, 先把路徑添加到.gitignore中, 然后git rm -r folder_path --cached
參考自:
https://blog.csdn.net/qq_37174526/article/details/86770976;
https://www.cnblogs.com/toward-the-sun/p/6599656.html