如果您在 Mac 平台上使用 git,您可能在 git 存儲庫中遇到過 DS_Store 文件。這些可能會使 git 存儲庫變得煩人和混亂,而且由於.DS_Store 文件在 git 存儲庫中維護,您甚至可能會遇到不必要的衝突,您可能會看到諸如“文件.DS_Store 和.DS_Store 有樹衝突”之類的錯誤消息。因為絕大多數 git 存儲庫不需要.DS_Store 文件,而且通常只會導致問題,所以從 git 存儲庫中刪除.DS_Store 文件是合理的。
首先,如果您想知道什麼是 DS_Store 文件,它基本上是一個包含 Mac 上文件夾特定元數據的文件。因此,.DS_Store 文件包括從有關視圖類型、文件/文件夾大小、縮略圖信息、文件夾佈局和任何 Finder 級別自定義的元數據到 Mac 上的特定文件夾的所有內容。由於.DS_Store 文件的前綴是.在文件名中,它們對 Finder 不可見(有效地使它們成為隱藏文件),但會顯示在命令行中,並且使用命令行工具或存儲庫管理器(如 git)默認將每個文件(包括隱藏文件)包含在一個目錄。
雖然.DS_Store 文件顯然對 Finder 有用,但它們對 git 存儲庫沒有用。讓我們回顧一下如何從 git 存儲庫中刪除所有 DS_Store 文件,以及如何防止它們被存儲在未來的 git 存儲庫中。
如何從 Git 存儲庫中刪除現有的.DS_Store 文件
打開終端,然後導航到您希望清除.DS_Store 文件的 git 存儲庫目錄 輸入以下命令字符串:
find.-名稱.DS_Store-print0 | xargs-0 git rm-f–ignore-unmatch
這將找到.DS_Store 文件並刪除它們。
如果你想走得更遠,你實際上可以刪除所有 DS_Store使用 find 命令的另一種變體從 Mac 上搜索文件,但請注意,這樣做會丟失所有 Finder 窗口和文件夾自定義項,因此不特別建議採用該方法。
如何在 git 中忽略.DS_Store 文件
現在讓我們更進一步,首先阻止 git 維護和提交 DS_Store 文件,而是完全忽略它們。這是通過修改(或創建)活動倉庫目錄中的.gitignore 文件來完成的:
echo.DS_Store >>.gitignore
現在您需要添加.gitignore文件到你的存儲庫,並提交更改。
git add.gitignore
git commit-m’Ignoring.DS_Store Files’
–
就其價值而言,不僅僅是 git 會遇到.DS_Store 文件創建或混亂的問題,或者可能會從忽略它們中受益,您還可以從在 Mac 上創建的 zip 存檔中排除 DS_Store 文件,這可以提供幫助減少混亂(並防止機器特定的元數據)保存在 zip 文件中。您可能會發現.DS_Store 文件在網絡環境中令人討厭,但是默認命令可以在需要時阻止為網絡卷創建 DS_Store 文件。