如何從git存儲庫中刪除DS_Store文件

Avilas

如果您在Mac平台上使用Git,則可能會在GIT存儲庫中遇到DS_Store文件。這些可能令人煩惱和混亂,git回購庫,您甚至可能會遇到不必要的衝突,因為在git存儲庫中維護了.ds_store文件,您可能會在其中看到錯誤消息,例如“ files .ds_store and .ds_store和.ds_store有樹的衝突”。因為絕大多數GIT存儲庫不需要.ds_store文件,並且通常可能引起問題,因此需要從GIT存儲庫中刪除.ds_store文件是合理的。


首先,如果您想知道DS_Store文件是什麼,那麼它基本上是一個包含Mac上特定於文件夾的元數據的文件。因此,一個.ds_store文件包括有關視圖類型,文件/文件夾大小,縮略圖信息,文件夾佈局和任何Finder級別自定義的所有內容,再到Mac上的特定文件夾。由於.ds_store文件帶有a的前綴。在文件名中,它們是Finder不可見的(有效地使它們隱藏了文件),但會顯示在命令行中,並使用命令行工具或像Git這樣的存儲庫管理器,默認情況下將在目錄中包括每個文件,包括隱藏的文件。

雖然.ds_store文件對查找器顯然很有用,但它們對於在GIT存儲庫中沒有用。讓我們回顧一下如何從GIT存儲庫中刪除所有DS_Store文件,以及如何預防將來存儲在將來的Git存儲庫中。

  1. 打開終端,然後導航到您希望避免的.ds_store文件的git repo目錄
  2. 輸入以下命令字符串:
  3. find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

那將找到.ds_store文件並刪除它們。

如果您想進一步走,實際上可以使用FIND命令的另一個變體從Mac中刪除所有DS_Store文件,但是請注意,您將丟失任何和所有Finder窗口和文件夾自定義,因此並不是特別建議使用該路線。

如何忽略git中的.ds_store文件

現在,讓我們走得更遠,並首先阻止Git維護和投入DS_Store文件,而是完全忽略它們。這是通過在Active Repo Directory中修改(或創建).gitignore文件來完成的:

另請閱讀:修復“警告:無法訪問/users/name/.config/git/attributes拒絕拒絕”錯誤

echo .DS_Store >> .gitignore

現在,您需要將.gitignore文件添加到您的存儲庫中,並提交更改。

git add .gitignore

git commit -m 'Ignoring .DS_Store Files'

-

就其價值而言,不僅可以遇到.ds_store文件創建或混亂的問題,或者可能會從忽略它們中受益,而且還可以從Mac上創建的zip Archives中排除DS_Store文件,這可以幫助減少混亂(並防止機器特定於機器的元數據)將其保留在zip文件中。並且您可能會發現.ds_store文件對網絡環境令人討厭,但是默認命令可以防止在需要時為網絡量的DS_Store文件創建。