我有一個帶有本地更改的 git-lfs 存盤庫,我想丟棄它們。我嘗試了以下命令但沒有成功:
git checkout file
git checkout -- file
git lfs checkout file
git reset --hard
我應該使用什么命令?
謝謝!
編輯:
用 gitk 查看修改顯示所有檔案的 r/w 屬性都已更改。內容相同。
-------------------- .gitattributes --------------------
old mode 100644
new mode 100755
還嘗試了這里提到的建議但沒有成功: git reset --hard 后留下的未分級更改
uj5u.com熱心網友回復:
TL;博士
您可能手動設定core.fileMode為true. 將其重新設定為false。
長
用 gitk 查看修改顯示所有檔案的 r/w 屬性都已更改。內容相同。
-------------------- .gitattributes -------------------- old mode 100644 new mode 100755
git reset --hard遺囑也試圖改變模式。顯然,這次嘗試失敗了,也許沒有報告任何錯誤。
這種行為常見于 DOS/Windows 風格的檔案系統,其中 x 和 -x 模式根本不受支持。一些配接器將所有檔案報告為模式644(rw-r--r--),一些配接器將所有檔案報告為模式755( rwx-r-xr-x);看起來你有第二種。
Git通常會針對這些型別的檔案系統進行自我檢測和調整:在創建存盤庫時,Git 會進行一些“創建檔案并更改其模式”測驗。如果模式從 x 更改為 -x 和/或反之亦然,Git 認為作業系統和檔案系統確實支持模式,因此它設定了一個配置設定:
core.fileMode true
如果不遵守這些更改,Git 認為作業系統和檔案系統不支持模式,因此設定相反的設定:
core.fileMode false
請注意,此設定core.filemode(有時混合駝峰式,有時全小寫:Git 在這里不區分大小寫,但在其他地方不區分大小寫)告訴 Git你的系統是如何作業的。它不控制系統,它只是報告早期的觀察。
如果您手動更改此變數,您就是在告訴 Git 您已經替換了您的作業系統和/或檔案系統,而它現在以另一種方式作業。如果您確實更換了您的作業系統和/或檔案系統并且它確實以另一種方式作業,那么您的新設定是正確的。但如果沒有,你現在對 Git 撒了謊。
或者,您可能會將整個.git存盤庫和作業樹移至新的檔案系統。當您這樣做時,根據您的特定作業系統和檔案系統,舊core.fileMode設定現在可能不準確。Git 不會知道這一點——Git 會相信舊的設定。通過移動檔案,您實際上對 Git 撒了謊,盡管在這種情況下您可能沒有任何理由懷疑類似的事情。
In both cases, the fix is to correct the lie: inform Git how the file system really works, by setting core.fileMode to false or true appropriately. Once it's set correctly, Git will know whether to assume the attributes settings it sees are valid (core.fileMode true) and therefore you'll see this kind of change, or not (core.fileMode false) and therefore you won't see this kind of change.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/438260.html
