Bird
Raised Fist0
Gitdevops~5 mins

Garbage collection with git gc - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the git gc command?

git gc stands for garbage collection. It cleans up unnecessary files and optimizes the local repository to save space and improve performance.

Click to reveal answer
intermediate
Which files does git gc typically remove or compress?

It removes unreachable objects (like old commits no longer referenced) and compresses loose objects into pack files to reduce disk space.

Click to reveal answer
intermediate
When does Git automatically run garbage collection?

Git runs garbage collection automatically after a certain number of changes or when the repository reaches a size threshold.

Click to reveal answer
beginner
How can you force Git to run garbage collection manually?

By running the command git gc in your repository folder.

Click to reveal answer
beginner
What is a pack file in Git?

A pack file is a compressed collection of Git objects that saves space and speeds up repository operations.

Click to reveal answer
What does git gc do?
ACreates a new commit
BDeletes all branches
CCleans up and optimizes the repository
DClones a repository
Which of these is NOT a result of running git gc?
ADeleting the entire repository
BRemoving unreachable objects
CCompressing loose objects
DCreating pack files
When does Git automatically run garbage collection?
AAfter every commit
BWhen you push to remote
COnly when you run <code>git gc</code> manually
DWhen repository size or changes reach a threshold
What is a pack file in Git?
AA backup of your repository
BA compressed file storing multiple Git objects
CA branch name
DA commit message
How do you manually trigger garbage collection in Git?
Agit gc
Bgit prune
Cgit clean
Dgit reset
Explain what happens when you run git gc in your repository.
Think about cleaning and organizing your repository files.
You got /3 concepts.
    Describe when and why Git runs garbage collection automatically.
    Git helps keep your repo tidy behind the scenes.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the git gc command?
      easy
      A. To create a new branch in the repository
      B. To clean up unnecessary files and optimize the repository
      C. To clone a remote repository locally
      D. To merge two branches together

      Solution

      1. Step 1: Understand the function of git gc

        The git gc command stands for garbage collection and is used to clean up unnecessary files in a Git repository.
      2. Step 2: Identify the main effect of running git gc

        Running git gc reduces repository size and improves performance by removing unneeded files.
      3. Final Answer:

        To clean up unnecessary files and optimize the repository -> Option B
      4. Quick Check:

        Garbage collection = Clean up files [OK]
      Hint: Remember: gc means garbage collection, cleans repo files [OK]
      Common Mistakes:
      • Confusing git gc with branch creation
      • Thinking it clones repositories
      • Assuming it merges branches
      2. Which of the following is the correct syntax to run an aggressive garbage collection in Git?
      easy
      A. git gc --aggressive
      B. git gc --fast
      C. git gc -a
      D. git gc --deep-clean

      Solution

      1. Step 1: Recall the option for deeper cleanup

        The --aggressive option tells Git to perform a more thorough garbage collection.
      2. Step 2: Match the correct syntax

        The correct command is git gc --aggressive. Other options like --fast or --deep-clean do not exist.
      3. Final Answer:

        git gc --aggressive -> Option A
      4. Quick Check:

        Deeper cleanup = --aggressive [OK]
      Hint: Use --aggressive for deep cleanup, not --fast [OK]
      Common Mistakes:
      • Using non-existent flags like --deep-clean
      • Confusing -a with --aggressive
      • Assuming --fast does deep cleanup
      3. What will be the effect of running git gc on a repository with many unreachable objects?
      medium
      A. It will reset the repository to the last commit
      B. It will create new unreachable objects
      C. It will delete unreachable objects and compress repository data
      D. It will only update branch pointers

      Solution

      1. Step 1: Understand unreachable objects in Git

        Unreachable objects are files or commits not referenced by any branch or tag and can be safely removed.
      2. Step 2: Effect of git gc on unreachable objects

        Running git gc deletes these unreachable objects and compresses data to optimize the repository.
      3. Final Answer:

        It will delete unreachable objects and compress repository data -> Option C
      4. Quick Check:

        Garbage collection removes unreachable objects [OK]
      Hint: Garbage collection removes unneeded data safely [OK]
      Common Mistakes:
      • Thinking it creates unreachable objects
      • Confusing it with reset commands
      • Assuming it only updates pointers
      4. You ran git gc --aggressive but noticed the repository size did not reduce much. What could be a possible reason?
      medium
      A. Git does not support aggressive garbage collection
      B. The command syntax was incorrect
      C. The repository is corrupted
      D. There are many recent commits and few unreachable objects

      Solution

      1. Step 1: Understand when garbage collection reduces size

        Garbage collection mainly removes unreachable objects and compresses data. If most data is reachable, size won't reduce much.
      2. Step 2: Analyze the scenario

        If the repository has many recent commits and few unreachable objects, git gc --aggressive will have little effect on size.
      3. Final Answer:

        There are many recent commits and few unreachable objects -> Option D
      4. Quick Check:

        Few unreachable objects = little size change [OK]
      Hint: Aggressive gc helps only if unreachable objects exist [OK]
      Common Mistakes:
      • Assuming syntax error without checking
      • Believing aggressive gc is unsupported
      • Jumping to repository corruption conclusion
      5. You want to reduce your Git repository size significantly and improve performance. Which sequence of commands should you run?
      hard
      A. git gc --aggressive; git prune; git gc
      B. git gc; git gc --aggressive; git prune
      C. git prune; git gc --aggressive; git gc
      D. git fetch; git gc --aggressive; git prune

      Solution

      1. Step 1: Understand the role of each command

        git gc --aggressive performs deep cleanup, git prune removes unreachable objects, and running git gc again optimizes after pruning.
      2. Step 2: Determine the best order

        First run git gc --aggressive for deep cleanup, then git prune to remove unreachable objects, and finally git gc to optimize the repository fully.
      3. Final Answer:

        git gc --aggressive; git prune; git gc -> Option A
      4. Quick Check:

        Deep cleanup + prune + optimize = D [OK]
      Hint: Run aggressive gc, then prune, then gc again for best cleanup [OK]
      Common Mistakes:
      • Running prune before aggressive gc
      • Skipping final gc optimization
      • Confusing fetch with garbage collection
      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