.DS_Store文件跟git沖突處理


一、什么是.DS_Store

答:.DS_Store是由蘋果公司的Mac OS操作系統所創造的隱藏文件(相當於保存文件夾的自定義屬性的隱藏文件),目的在於存貯目錄的自定義屬性,例如文件的圖標位置或者是背景色,相當於Windows的desktop.ini。

二、什么情況出現

答:做項目時,每次打開項目文件(未修改)或則修改項目后都會提示該文件已修改(與git沖突,無法正常下拉、上傳代碼),原因,其他項目成員自帶的.DS_Store提交到了服務器

三、解決過程

1.使用SourceTree工具,放棄工作副本中.DS_Store文件(無效-未解決)

.DS_Store致命:
無法創建/用戶/XXX /XXX /.git/index.lock':文件存在。如果沒有其他git當前正在運行的進程,這可能意味着git過程墜毀在這個存儲庫。確保沒有其他git過程是手動繼續運行和刪除文件。
完成與錯誤,見上圖

2.進入項目文件,使用終端刪除.DS_Store文件,git版本工具SourceTree仍然無法進行代碼的拉取和上傳,如上圖。(未解決)

3.從遠程URL新建本地倉庫(舍棄原有無法拉取的倉庫),新倉庫打開文件夾后SourceTree提示.DS_Store已修改,可通過工作副本放棄該文件(缺點是打開文件都會出現,每次都需要手動取消該文件的修改)(解決一半)

4.終端進入新的本地倉庫,刪除.DS_Store文件,再次打開則不會再次出現【刪除后SourceTree工具會顯示刪除的所有.DS_Store文件,將刪除文件提交push】(解決)

 

 

四、刪除會有副作用嗎

答:刪除以后的副作用是這些信息的失去。(當然,這點副作用其實不是太大)--不會影響該文件夾下項目的正常運行

五、終端刪除.DS_Store文件

打開 “終端” ,cd到你想要刪除.DS_Store的文件夾:復制黏貼下面的命令,回車執行,重啟Mac即可生效。

sudo find ./ -name ".DS_Store" -depth -exec rm {} \; 

六、禁止.DS_Store生成

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

七、恢復.DS_Store生成

defaults delete com.apple.desktopservices DSDontWriteNetworkStores

 

 Ts:

  和別人交換文件(或你做的網頁需要上傳的時候)應該把 .DS_Store 文件刪除比較妥當,因為里面包含了一些你不一定希望別人看見的信息(尤其是網站,通過 .DS_Store 可以知道這個目錄里面所有文件的清單,很多時候這是一個不希望出現的問題)

Ts: 

// cd到你想要刪除的文件夾,輸入終端命令
ls -al

即可查看該文件夾下所以文件,包括隱藏文件(例如.DS_Store),隱藏文件前帶黑點,正常文件不帶黑點,如下

 


免責聲明!

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



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