Bird
Raised Fist0
Gitdevops~5 mins

Git LFS for large files - Commands & Configuration

Choose your learning style10 modes available
Introduction
Git LFS helps you manage very large files in your Git projects. It stores big files outside your main repository to keep it fast and small.
When you want to add large images or videos to your project without slowing down Git operations.
When your project has big data files that change often and would make cloning slow.
When you want to share large files with your team but keep your repository size manageable.
When you need to track large binary files that Git cannot efficiently handle.
When you want to avoid hitting Git hosting limits on repository size.
Commands
This command sets up Git LFS on your computer so Git can handle large files properly.
Terminal
git lfs install
Expected OutputExpected
Git LFS initialized.
This tells Git LFS to track all files ending with .psd (Photoshop files) so they are stored outside the main Git repository.
Terminal
git lfs track "*.psd"
Expected OutputExpected
Tracking '*.psd'
Adds the .gitattributes file created by git lfs track to your staging area so Git knows which files use LFS.
Terminal
git add .gitattributes
Expected OutputExpected
No output (command runs silently)
Adds the large file design.psd to the staging area. Git LFS will handle this file specially.
Terminal
git add design.psd
Expected OutputExpected
No output (command runs silently)
Commits the changes including the large file tracked by Git LFS to your local repository.
Terminal
git commit -m "Add large design file with Git LFS"
Expected OutputExpected
[main abc1234] Add large design file with Git LFS 2 files changed, 2 insertions(+) create mode 100644 .gitattributes create mode 100644 design.psd
Pushes your commit and the large file to the remote repository. Git LFS uploads the large file separately.
Terminal
git push origin main
Expected OutputExpected
Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 1.23 MiB | 1.23 MiB/s, done. Total 3 (delta 0), reused 0 (delta 0) Uploading LFS objects: 100% (1/1), 1.00 MiB | 1.00 MiB/s, done. To https://github.com/example/my-app.git def5678..abc1234 main -> main
Key Concept

If you remember nothing else from this pattern, remember: Git LFS stores large files outside your main Git repository to keep it fast and efficient.

Common Mistakes
Not running 'git lfs install' before tracking files
Git LFS won't be properly set up, so large files won't be handled correctly.
Always run 'git lfs install' once before tracking large files.
Forgetting to add and commit the .gitattributes file
Other users or systems won't know which files use Git LFS, causing errors or large files to be stored in Git.
Add and commit the .gitattributes file created by 'git lfs track' to your repository.
Tracking files after adding them to Git without Git LFS
Files already in Git won't be converted to LFS automatically, keeping the repo large.
Track files with Git LFS before adding them to Git.
Summary
Run 'git lfs install' once to set up Git LFS on your machine.
Use 'git lfs track' to specify which large files Git LFS should manage.
Add and commit the .gitattributes file so Git knows about LFS tracking.
Add and commit your large files normally; Git LFS handles them behind the scenes.
Push your commits; Git LFS uploads large files separately to keep your repo small.

Practice

(1/5)
1. What is the main purpose of Git LFS (Large File Storage)?
easy
A. To convert large files into text files for easier diffing
B. To speed up Git commit operations by compressing files
C. To automatically merge large files during conflicts
D. To store large files outside the main Git repository history

Solution

  1. Step 1: Understand Git LFS functionality

    Git LFS stores large files outside the main Git history to keep the repository lightweight.
  2. Step 2: Compare options with Git LFS purpose

    Options A, B, and C describe unrelated features; only To store large files outside the main Git repository history matches Git LFS's main goal.
  3. Final Answer:

    To store large files outside the main Git repository history -> Option D
  4. Quick Check:

    Git LFS purpose = store large files externally [OK]
Hint: Git LFS stores big files outside Git history [OK]
Common Mistakes:
  • Thinking Git LFS compresses files inside Git
  • Assuming Git LFS merges conflicts automatically
  • Believing Git LFS converts files to text
2. Which command correctly tracks all .psd files using Git LFS?
easy
A. git track lfs *.psd
B. git lfs track "*.psd"
C. git lfs add *.psd
D. git add lfs *.psd

Solution

  1. Step 1: Recall Git LFS tracking syntax

    The correct command to track files is git lfs track "pattern".
  2. Step 2: Check each option's syntax

    Only git lfs track "*.psd" uses the correct command and pattern syntax. Others are invalid commands.
  3. Final Answer:

    git lfs track "*.psd" -> Option B
  4. Quick Check:

    Correct Git LFS track syntax = git lfs track [OK]
Hint: Use 'git lfs track "*.ext"' to track file types [OK]
Common Mistakes:
  • Swapping command order like 'git track lfs'
  • Using 'git lfs add' instead of 'track'
  • Trying to add files directly with 'git add lfs'
3. After running git lfs track "*.mp4" and committing, what will happen when you add a new video.mp4 file and push?
medium
A. The video.mp4 file is stored in Git LFS and pushed separately
B. The video.mp4 file is pushed as a normal Git blob
C. Git will reject the push because video.mp4 is too large
D. The video.mp4 file is ignored and not pushed

Solution

  1. Step 1: Understand effect of tracking and committing .gitattributes

    Tracking '*.mp4' and committing .gitattributes tells Git to use LFS for .mp4 files.
  2. Step 2: Add and push a new .mp4 file

    Git LFS stores the file outside Git history and pushes it separately, so The video.mp4 file is stored in Git LFS and pushed separately is correct.
  3. Final Answer:

    The video.mp4 file is stored in Git LFS and pushed separately -> Option A
  4. Quick Check:

    Tracked files use LFS storage on push [OK]
Hint: Tracked files go to LFS storage on push [OK]
Common Mistakes:
  • Assuming large files push normally without LFS
  • Thinking Git rejects large files automatically
  • Believing tracked files are ignored
4. You ran git lfs track "*.zip" but forgot to commit .gitattributes. What problem will occur?
medium
A. Git LFS will track .zip files but not push them
B. Git will refuse to add .zip files locally
C. Git LFS will not track .zip files on other clones
D. No problem; tracking works without committing .gitattributes

Solution

  1. Step 1: Understand role of .gitattributes in Git LFS

    .gitattributes stores tracking rules and must be committed to share them.
  2. Step 2: Effect of not committing .gitattributes

    Other clones won't know to track .zip files with LFS, so Git LFS will not track .zip files on other clones is correct.
  3. Final Answer:

    Git LFS will not track .zip files on other clones -> Option C
  4. Quick Check:

    Commit .gitattributes to share LFS tracking [OK]
Hint: Always commit .gitattributes after tracking files [OK]
Common Mistakes:
  • Assuming local tracking affects other clones
  • Thinking Git blocks adding files without .gitattributes
  • Believing tracking works without committing
5. You want to track both .psd and .mp4 files with Git LFS. Which sequence correctly sets this up and shares it with your team?
hard
A. Run git lfs track "*.psd" and git lfs track "*.mp4", then commit and push .gitattributes
B. Run git lfs track "*.psd *.mp4" and push without committing
C. Add files with git add *.psd *.mp4 then run git lfs install
D. Run git lfs track "*.psd" only, then manually add .mp4 files

Solution

  1. Step 1: Track each file type separately

    Git LFS requires separate track commands for each pattern, so run both track commands.
  2. Step 2: Commit and push .gitattributes to share tracking

    Committing and pushing .gitattributes shares tracking rules with the team.
  3. Final Answer:

    Run git lfs track "*.psd" and git lfs track "*.mp4", then commit and push .gitattributes -> Option A
  4. Quick Check:

    Track each pattern + commit .gitattributes [OK]
Hint: Track each pattern separately and commit .gitattributes [OK]
Common Mistakes:
  • Trying to track multiple patterns in one command incorrectly
  • Forgetting to commit .gitattributes
  • Running git lfs install after adding files
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard