Skip to content

Simple steps to uninstall Git LFS from your repository #3026

@chase-moskal

Description

@chase-moskal

it's time to settle this topic once and for all, because answers raised in previous issues about this have proven insufficiently formulated, or are simply outdated with deprecated commands (#316, #641, #910)

i was delighted when git lfs was so easy to install and get started with — but it starts to feel frustrating when git lfs is difficult and confusing to break up with — and boy am i confused

so let's make this easy together — and remember — its not you, it's me
ok ok.. i'm seeing someone else.. it's github pages! (github pages doesn't support lfs)

  1. git lfs uninstall
    this removes hooks and smudge/clean filter configuration
    and this is only the beginning, mua-ha-ha

  2. how can we reindex/re-commit lfs'd files to restore them???
    in this comment @andyneff says:

    you can probably remove the entries from .gitattributes and trigger the git index that every lfs file is different, and then add and commit those files. This is the same procedure in how you change the auto newlines in a git repo. I'll have to test this some, but this might get you in the right direction. The only caviate is you don't want to reset the .gitattributes files first.

    good thing i read just now that this must be done before the .gitattributes step

    but how the heck do we do this? (sure don't want to accidentally change all my newlines, hah)

    is there a way that git lfs can do this for me? after all, it was the one who created this mess to begin with.. ok, ok, i know that line never works in any relationship ;)

    edit: ok, there's some talk in this issue about a methodology

    • git lfs ls-files — view lfs files
    • for each file, use globs if you can:
      • git rm --cached myfile.psd — "remove" the lfs file
      • git add myfile.psd — add the "normal" file
    • git commit -m "restore files from lfs"

    let me know if that makes sense

  3. remove lfs .gitattribute entries
    this will apparently prevent lfs from resurrecting itself

  4. how do we remove remaining files, seen via git lfs ls-files???
    i'm guessing we git lfs untrack them one-at-a-time
    edit: nope, untrack doesn't remove them... hmm... what does it do?
    maybe once i figure out step 2, this'll be done
    edit: yep, step 2 knocks this one out

  5. what do we tell our fellow contributors to do???
    i'm guessing they just need to git lfs uninstall?
    do they also need to git lfs untrack stored files or anything like that?

also, i have no interest in rewriting git history here, that's silly... i just want to move forward with my collaborators once this is taken care of

oh, and obviously, i need some help with the points ending in lots of question marks — once we work through this, i'd like to edit this post into a nice clean list of steps that people can follow — then maybe let's formalize this into some documentation

thanks fellas

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions