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
same lol