詳解 git 忽略文件 刪除遠端倉庫的文件


要解決的問題

  1. 忽略指定類型的文件 或 某個指定文件(夾)
  2. 將已經push到github的文件刪除, 但本地的文件不刪除 (寫忽略規則之前就把這個文件夾push了 T_T )
  3. 將想要忽略掉的文件的相關記錄(如下圖) 清理掉
    (包括保留本地文件和不保留兩種情況)

解決方法

問題1 (忽略指定類型的文件 或 某個指定文件(夾))

本地倉庫忽略

本地倉庫的文件忽略規則可以在 .git/info/exclude 文件中添加. 對當前這個倉庫下的所有文件起作用. 這些忽略的文件不會提交到共享庫中, 因而不會被協作者所共享. 規則如下:

*.[oa] # 忽略以 o 或 a 為拓展名的文件
*~
*.exe
.* # 忽略所有以 . 開頭的文件
test.cpp # 忽略這個文件
/test/ # 忽略 **根目錄** 下的 test 文件夾里面所有的內容

(更多規則可以參考shell的正則表達式)

當前工作目錄添加文件忽略

對於每一級工作目錄, 創建一個.gitignore文件, 向該文件中添加要忽略的文件或目錄. 規則同上

全局忽略

不需要在每一個倉庫中添加 .gitignore 文件或者修改 exclude文件(畢竟在.git文件里亂動可能項目就沒了), 只需要在用戶賬戶文件夾下建立.gitignore_global文件就可以忽略我們想忽略的內容, 步驟如下:

  1. 在git bash下執行命令 git config --global core.excludesfile ~/.gitignore_global, 然后你會發現, ~/.gitconfig 文件里多了一行
    git_config里的變化
  2. 創建 .gitignore_global 文件, 在里面寫上規則就好了

問題2 (將已經push到github的文件刪除, 但本地的文件不刪除)

git rm -r --cached .vscode # 將文件夾從暫存區中刪除
git commit -m 'delete .vscode config' # 將修改后的暫存區合並到HEAD中
git push origin master # 推到遠端


順便復習一下查看暫存區命令 git ls-files


問題3 (將想要忽略掉的文件的相關記錄清理掉)

刪除暫存區的文件, 同時刪除本地的文件

git rm file_name # 刪除本地文件, 同時也從暫存區中刪除
git commit -m "delete" # 合並到HEAD中
git push origin master

提交刪除記錄

由於我已經手動將 .exe 文件刪除, 所以只需要執行

git add -A
git commit -m "delete"
git push origin master



Reference List:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM