📁 Git LFS = Large File Storage
Git repos get bloated. Git LFS stores large files efficiently. Images, videos, binaries — keep repo fast.
📝 Git LFS Setup
# Install Git LFS # macOS brew install git-lfs # Linux sudo apt install git-lfs # Windows # Download from https://git-lfs.github.com # Initialize LFS git lfs install # Track file types git lfs track "*.psd" git lfs track "*.png" git lfs track "*.jpg" git lfs track "*.mp4" git lfs track "*.zip" git lfs track "*.pdf" # Track specific files git lfs track "assets/logo-large.png" # View tracked patterns git lfs track # .gitattributes (auto-generated) *.psd filter=lfs diff=lfs merge=lfs -text # Commit LFS files git add .gitattributes git add *.psd git commit -m "Add large files with LFS" git push origin main # Migrate existing files to LFS git lfs migrate import --include="*.psd,*.png" # Migrate with history rewrite git lfs migrate import --include="*.psd" --everything
🎯 Advanced LFS Commands
# Clone with LFS
git clone repository-url
# LFS files download automatically
# Clone without LFS (placeholder)
GIT_LFS_SKIP_SMUDGE=1 git clone repository-url
# Fetch specific LFS files
git lfs pull --include="specific-file.png"
# Check LFS status
git lfs status
git lfs ls-files
# Environment variables
export GIT_LFS_DOWNLOAD=true
export GIT_LFS_SKIP_PUSH=true
export GIT_LFS_STORAGE=100MB
# Check LFS storage usage
git lfs quota
# Debug LFS operations
GIT_TRACE=1 git push origin main
GIT_CURL_VERBOSE=1 git lfs fetch
# LFS with SSH
git config lfs.url ssh://git@server/path/to/repo.git
# Verify LFS files
git lfs fsck
# Clean LFS cache
git lfs prune
# LFS in CI/CD
# GitHub Actions
- name: Checkout
uses: actions/checkout@v3
with:
lfs: true
💡 LFS Best Practices
- Only use for large files (over 1MB)
- Set .gitattributes early
- Monitor LFS storage limits
- Use LFS in CI/CD pipelines
- Consider storage costs
“Git LFS handles large files. Images, videos, binaries. Essential for game dev, media, and design.”
