Bird
Raised Fist0
Gitdevops~5 mins

Shallow clones with depth in Git - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a shallow clone in Git?
A shallow clone is a copy of a Git repository that contains only the latest commits up to a specified depth, not the full history. It saves time and space.
Click to reveal answer
beginner
How do you create a shallow clone with a depth of 5 commits?
Use the command: git clone --depth 5 <repository_url>. This clones only the last 5 commits.
Click to reveal answer
beginner
Why would you use a shallow clone?
To save time and disk space when you only need recent history, such as for quick builds or testing, not full project history.
Click to reveal answer
intermediate
Can you fetch more history after a shallow clone?
Yes, you can deepen the clone later using git fetch --deepen <number> or fetch the full history with git fetch --unshallow.
Click to reveal answer
beginner
What is the difference between a shallow clone and a full clone?
A full clone downloads the entire commit history, while a shallow clone downloads only a limited number of recent commits.
Click to reveal answer
Which command creates a shallow clone with a depth of 3 commits?
Agit clone --depth 3 <repo_url>
Bgit clone --shallow 3 <repo_url>
Cgit clone --limit 3 <repo_url>
Dgit clone --history 3 <repo_url>
What is a main benefit of using shallow clones?
AAutomatic branch creation
BAccess to full project history
CAbility to push changes faster
DFaster cloning and less disk space used
How can you get more commits after a shallow clone?
Agit fetch --deepen <number>
Bgit clone --depth <number>
Cgit pull --shallow
Dgit reset --depth <number>
Which of these is NOT true about shallow clones?
AThey save time when cloning
BThey can be deepened later
CThey include the full commit history
DThey download fewer commits
What happens if you run git fetch --unshallow?
AIt deletes the shallow clone
BIt converts a shallow clone into a full clone by downloading all history
CIt reduces the depth of the clone
DIt creates a new shallow clone
Explain what a shallow clone is and why it might be useful.
Think about cloning only recent changes instead of everything.
You got /3 concepts.
    Describe how to create a shallow clone and how to get more history later.
    Start shallow, then deepen or unshallow as needed.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the --depth option do when used with git clone?
      easy
      A. It compresses the repository to save disk space.
      B. It clones all branches including remote ones.
      C. It creates a shallow clone with limited commit history.
      D. It initializes a new empty repository.

      Solution

      1. Step 1: Understand the purpose of --depth

        The --depth option limits the number of commits cloned, creating a shallow copy.
      2. Step 2: Compare with other clone types

        Unlike a full clone, a shallow clone saves time and space by copying recent commits only.
      3. Final Answer:

        It creates a shallow clone with limited commit history. -> Option C
      4. Quick Check:

        Shallow clone = limited history [OK]
      Hint: Remember: --depth limits commit history depth [OK]
      Common Mistakes:
      • Thinking --depth clones all branches
      • Confusing shallow clone with compression
      • Assuming it creates an empty repo
      2. Which of the following is the correct syntax to clone a repository with a depth of 5 commits?
      easy
      A. git clone --depth=5 https://example.com/repo.git
      B. git clone -depth 5 https://example.com/repo.git
      C. git clone --depth 5 https://example.com/repo.git
      D. git clone --deep 5 https://example.com/repo.git

      Solution

      1. Step 1: Recall correct git clone syntax for depth

        The correct syntax uses --depth with an equals sign or a space and the number, like --depth=5 or --depth 5. Both are valid.
      2. Step 2: Identify incorrect options

        git clone -depth 5 https://example.com/repo.git uses a single dash which is invalid. git clone --deep 5 https://example.com/repo.git uses an invalid flag --deep.
      3. Final Answer:

        git clone --depth=5 https://example.com/repo.git -> Option A
      4. Quick Check:

        Correct syntax = --depth=5 or --depth 5 [OK]
      Hint: Use --depth=5 or --depth 5 for shallow clone [OK]
      Common Mistakes:
      • Using '=' instead of space after --depth (both valid but some prefer equals)
      • Typing -depth instead of --depth
      • Using --deep instead of --depth
      3. What will be the output of the following commands?
      git clone --depth 2 https://example.com/repo.git
      cd repo
      git log --oneline
      medium
      A. Shows commits from all branches.
      B. Shows the full commit history.
      C. Shows no commits because depth is too low.
      D. Shows only the last 2 commits in the log.

      Solution

      1. Step 1: Understand shallow clone effect on history

        Using --depth 2 clones only the last 2 commits, so git log shows those.
      2. Step 2: Analyze git log --oneline output

        This command lists commits in short form, limited to the shallow clone's depth.
      3. Final Answer:

        Shows only the last 2 commits in the log. -> Option D
      4. Quick Check:

        Depth 2 clone shows 2 commits [OK]
      Hint: Shallow clone limits log to depth commits [OK]
      Common Mistakes:
      • Expecting full history in shallow clone
      • Thinking no commits show if depth is low
      • Assuming all branches' commits appear
      4. You ran git clone --depth 3 https://example.com/repo.git but later need the full history. What should you do to fix this?
      medium
      A. Run git fetch --unshallow inside the cloned repo.
      B. Delete the repo and clone again without --depth.
      C. Run git clone --depth 0 to get full history.
      D. Run git pull --depth=full to fetch all commits.

      Solution

      1. Step 1: Understand how to convert shallow clone to full

        Inside the shallow clone, running git fetch --unshallow downloads the full commit history.
      2. Step 2: Evaluate other options

        Deleting the repo and cloning again without --depth works but is inefficient. Options C and D use invalid syntax or commands.
      3. Final Answer:

        Run git fetch --unshallow inside the cloned repo. -> Option A
      4. Quick Check:

        Use git fetch --unshallow to get full history [OK]
      Hint: Use git fetch --unshallow to complete shallow clone [OK]
      Common Mistakes:
      • Trying to reclone instead of fetching full history
      • Using invalid git pull options
      • Assuming --depth 0 is valid
      5. You want to clone a large repository but only need the last 10 commits of the main branch and no other branches. Which command achieves this efficiently?
      hard
      A. git clone --depth=10 https://example.com/repo.git
      B. git clone --depth 10 --single-branch --branch main https://example.com/repo.git
      C. git clone --branch main https://example.com/repo.git
      D. git clone --shallow-since=10days https://example.com/repo.git

      Solution

      1. Step 1: Identify options to limit clone depth and branches

        Use --depth 10 to limit commits and --single-branch --branch main to clone only main branch.
      2. Step 2: Check other options for correctness

        git clone --depth=10 https://example.com/repo.git clones all branches shallowly. git clone --branch main https://example.com/repo.git clones full history of main. git clone --shallow-since=10days https://example.com/repo.git uses invalid flag.
      3. Final Answer:

        git clone --depth 10 --single-branch --branch main https://example.com/repo.git -> Option B
      4. Quick Check:

        Depth + single branch = efficient clone [OK]
      Hint: Combine --depth with --single-branch for focused clone [OK]
      Common Mistakes:
      • Not using --single-branch clones all branches
      • Using invalid flags like --shallow-since
      • Assuming --depth=10 clones only main branch
      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