Skip to content

Instantly share code, notes, and snippets.

@everttrollip
Last active October 23, 2024 05:31
Show Gist options
  • Save everttrollip/198ed9a09bba45d2663ccac99e662201 to your computer and use it in GitHub Desktop.
Save everttrollip/198ed9a09bba45d2663ccac99e662201 to your computer and use it in GitHub Desktop.
Removing git lfs from (any) repository

So, it has been an interesting journey, but time to remove git-lfs. Here follows a summary of the approach I used to safely remove git-lfs,

  • commit & push everything
  • create a branch, something like fix/remove-lfs
  • remove hooks git lfs uninstall
  • remove lfs stuff from .gitattributes (open file, delete content - don't delete the file!)
  • list all lfs files, git lfs ls-files
  • run git rm --cached for each file
    • if your list is big, copy the contents into a file.txt
    • make sure you remove the number and asterik on each line, you only want the paths to the files
    • while read line; do git rm --cached "$line"; done < files.txt
  • run git add for each file
    • if you have a file.txt
    • while read line; do git add "$line"; done < files.txt
  • run a git status and make sure all the files were added properly
  • commit everything
git add .gitattributes
git commit -m "unlfs"
git push
  • check that no lfs files left with git lfs ls-files
  • remove any lfs, rm -rf .git/lfs

Once your branch (fix/remove-lfs) is merged into develop, your team doesn't need to do anything other than simply pulling and checking out the new state of the world, their repository will work as-expected without git lfs installed. If git lfs is still installed, simply let them uninstall it: git lfs uninstall

Credits: Fedor, Taylor, Chase, Simon

@TheDragonNidhogg
Copy link

Thank you so much for your help. I have been trying to do this for over a week and your guide finally let get rid of lfs.

@tigerhawkvok
Copy link

Created a Python script to do this:

https://gist.github.com/tigerhawkvok/adb7905a2423312f237da1953d6a8eeb

Should work on all platforms (including Windows), and can generate a dry-run script for you to inspect. (Note the dry-run script won't actually edit your .gitattributes or your .git/lfs folder, it'll just show you the new contents of .gitattributes and verify the to-be-removed path)

@inyourface34456
Copy link

How do I fix this error:

E: Conflicting values set for option Signed-By regarding source https://packagecloud.io/github/git-lfs/ubuntu/ focal: /usr/share/keyrings/gitlfs-archive-keyring.gpg != /etc/apt/keyrings/github_git-lfs-archive-keyring.gpg
E: The list of sources could not be read.
E: Conflicting values set for option Signed-By regarding source https://packagecloud.io/github/git-lfs/ubuntu/ focal: /usr/share/keyrings/gitlfs-archive-keyring.gpg != /etc/apt/keyrings/github_git-lfs-archive-keyring.gpg
E: The list of sources could not be read.

This was caused after I ran the install script (obtained using curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash). I need to use apt again, and I do not know how to fix it.

@LecDoit
Copy link

LecDoit commented Jul 23, 2024

i am not able to uninstall LFS this is crap

@Nosenzor
Copy link

Nosenzor commented Oct 9, 2024

i am not able to uninstall LFS this is crap

Same

@angadsinghsandhu
Copy link

same lol

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment