Bird
Raised Fist0
Gitdevops~10 mins

Shallow clones with depth in Git - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the command to clone a repository with a depth of 1.

Git
git clone --depth [1] https://github.com/example/repo.git
Drag options to blanks, or click blank then click option'
A1
Blatest
Cshallow
Dfull
Attempts:
3 left
💡 Hint
Common Mistakes
Using non-numeric values like 'full' or 'shallow' for depth.
Omitting the depth option and cloning the full history.
2fill in blank
medium

Complete the command to fetch the last 5 commits from a remote repository.

Git
git clone --depth [1] https://github.com/example/repo.git
Drag options to blanks, or click blank then click option'
A0
B10
C1
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using 0 as depth, which is invalid.
Using a depth larger than needed.
3fill in blank
hard

Fix the error in the command to create a shallow clone with depth 3.

Git
git clone --depth [1] https://github.com/example/repo.git
Drag options to blanks, or click blank then click option'
A3
Bdepth 3
C3 --shallow
Dthree
Attempts:
3 left
💡 Hint
Common Mistakes
Using '=' after --depth which is not valid in git clone.
Writing the depth as a word instead of a number.
4fill in blank
hard

Fill both blanks to create a shallow clone with depth 2 and single branch.

Git
git clone --depth [1] --branch [2] https://github.com/example/repo.git
Drag options to blanks, or click blank then click option'
A2
Bmain
Cmaster
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using depth 1 when 2 is requested.
Using the wrong branch name.
5fill in blank
hard

Fill both blanks to fetch a shallow clone with depth 4, branch 'develop', and single branch option.

Git
git clone --depth [1] --branch [2] --single-branch https://github.com/example/repo.git
Drag options to blanks, or click blank then click option'
A4
Bdevelop
D--quiet
Attempts:
3 left
💡 Hint
Common Mistakes
Adding a value after --single-branch which causes an error.
Using wrong branch name or depth.

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