删除.git/lfs目录后,Git仓库的本地分支操作能否正常执行?
解答
删除.git/lfs目录后,你提到的命令是否正常工作,取决于你的本地工作区是否已经拥有local_feature分支中LFS跟踪文件的实际内容:
情况1:工作区已存在LFS文件的实际内容
git checkout local_feature:完全正常运行。Git切换分支只依赖仓库中的LFS指针文件,工作区的实际大文件已经存在,不需要读取.git/lfs缓存。git push local_feature other/location:可以正常执行。推送时Git LFS会检测工作区的实际文件,必要时自动重建缓存,或者直接基于工作区的文件内容上传到远程LFS存储。
情况2:工作区只有LFS指针文件(未拉取过实际大文件)
git checkout local_feature:分支切换本身能完成(指针文件会被检出),但Git LFS会因为找不到缓存的实际文件而抛出错误。这时你需要执行git lfs pull,从远程重新拉取大文件到本地缓存和工作区。git push local_feature other/location:会执行失败。因为Git LFS无法上传不存在的LFS对象,必须先拉取到实际文件才能完成推送。
另外要注意:如果你的仓库只是用来保留本地分支做参考,删除.git/lfs缓存不会损坏分支的提交历史或指针文件结构。之后如果需要使用这些LFS文件,重新运行git lfs pull就能重新填充缓存。
内容的提问来源于stack exchange,提问作者y.selivonchyk
相关产品推荐
相关产品推荐

