簡體   English   中英

Git lfs(大型文件存儲)表示 lfs 管理的文件在 git lfs 拉取后被修改

[英]Git lfs (Large File Storage) says lfs managed files are modified after a git lfs pull

我有一個使用 git-lfs 存儲一些大文件的存儲庫的工作副本。 我安裝了 git-lfs 二進制文件,但可能沒有在工作副本中運行“git lfs install”。 當我想在添加 lfs 文件后更新我的本地工作副本時,我執行這些命令:

git pull
git lfs pull

只要添加了 lfs 文件,它就可以正常工作。 然后存儲庫有一些 lfs 文件被修改,當我運行git pull時,我收到錯誤消息:

Your local changes to the following files would be overwritten by merge
....
....

它列出了所有要通過拉取修改的 lfs 文件。

從那時起,我在工作副本中運行了git lfs install並且運行良好,但是git status仍然列出所有這些文件被修改並且git pull給了我同樣的錯誤。

我的問題基本上是,如果我使用 lfs,更新工作副本的正確步驟是什么? 我該如何清理這種棘手的情況?

事實證明,在工作副本中運行git lfs install是解決方案的一半。 下半部分是在工作副本中運行git reset

  • 將大文件留在原地
  • 讓git知道他們實際上並不臟,而且很好

現在似乎我不再需要明確地執行git lfs pull來獲取最新的大文件。 第一個git pull工作正常。

對我來說,在我git clone之前,我首先進行git lfs install ,然后進行git clone 一切都解決了! 我認為這個問題非常重要和常見,有很多GitHub討論沒有展示真正的解決方案(至少沒有一目了然)! 謝謝你的回答傻瓜。

在使用 Windows(git 版本 2.31.1 和 git-lfs/2.13.3)和 Linux(git 版本 2.25.1 和 git-lfs/2.9.2)時,我遇到了具有大寫文件擴展名的幾乎相同的問題.

我的.gitattributes包含*.jpg filter=lfs diff=lfs merge=lfs -text -text 小寫*.jpg我提交了 Windows 下的文件,文件擴展名為test.JPG 在 Linux 系統上克隆存儲庫后,具有大寫擴展名 ( .JPG ) 的圖像僅保留參考,而具有小寫文件擴展名 ( .jpg ) 的圖像按預期被克隆。
git lfs pull在 Linux 系統上執行后,圖像正確位於文件系統上,但現在它們顯示為Modified

解決方案是通過運行以下命令將 Git 配置為忽略 Linux 上的大小寫:
git config --global core.ignorecase true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM