Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a lightweight tag in Git?
A lightweight tag is a simple pointer to a specific commit. It acts like a bookmark without extra information like tagger name or date.
Click to reveal answer
beginner
What extra information does an annotated tag contain compared to a lightweight tag?
Annotated tags store the tagger's name, email, date, and a message. They are stored as full objects in Git's database.
Click to reveal answer
beginner
How do you create a lightweight tag in Git?
Use the command: git tag <tagname>. This creates a simple pointer without extra metadata.
Click to reveal answer
beginner
How do you create an annotated tag in Git?
Use the command: git tag -a <tagname> -m "message". This creates a tag with metadata and a message.
Click to reveal answer
intermediate
When should you use annotated tags instead of lightweight tags?
Use annotated tags when you want to record extra info like who created the tag, when, and why. Good for releases.
Click to reveal answer
Which Git tag type stores the tagger's name and date?
ABranch
BLightweight tag
CAnnotated tag
DCommit
✗ Incorrect
Annotated tags include metadata like tagger's name and date, unlike lightweight tags.
What command creates a lightweight tag?
Agit tag <tagname>
Bgit tag -a <tagname> -m "msg"
Cgit commit -m "tag"
Dgit branch <tagname>
✗ Incorrect
The simple git tag command creates a lightweight tag.
Which tag type is better for marking official releases?
AAnnotated tag
BLightweight tag
CTemporary tag
DDetached HEAD
✗ Incorrect
Annotated tags store extra info and are preferred for official releases.
What does the -a option do in git tag -a?
ACreates a lightweight tag
BLists all tags
CDeletes a tag
DCreates an annotated tag
✗ Incorrect
The -a option tells Git to create an annotated tag.
Which tag type is just a simple pointer without extra data?
ARemote tag
BLightweight tag
CSigned tag
DAnnotated tag
✗ Incorrect
Lightweight tags are simple pointers without metadata.
Explain the difference between lightweight and annotated tags in Git.
Think about what extra information you get with annotated tags.
You got /4 concepts.
When and why would you choose to use an annotated tag over a lightweight tag?
Consider the value of extra information in project history.
You got /4 concepts.
Practice
(1/5)
1. What is the main difference between a lightweight tag and an annotated tag in Git?
easy
A. Annotated tags are simple pointers, while lightweight tags store author and date information.
B. Lightweight tags can only be created on branches, annotated tags only on commits.
C. Lightweight tags are simple pointers to commits, while annotated tags store extra information like author and message.
D. Annotated tags are temporary, lightweight tags are permanent.
Solution
Step 1: Understand lightweight tags
Lightweight tags are just simple pointers to a commit without extra data.
Step 2: Understand annotated tags
Annotated tags store additional info like author, date, and a message, making them more detailed.
Final Answer:
Lightweight tags are simple pointers to commits, while annotated tags store extra information like author and message. -> Option C
Quick Check:
Lightweight = pointer, Annotated = pointer + info [OK]
Hint: Remember: annotated tags hold extra info, lightweight just points [OK]
Common Mistakes:
Confusing which tag stores extra info
Thinking lightweight tags store author data
Believing annotated tags are temporary
2. Which Git command correctly creates an annotated tag named v1.0 with a message?
easy
A. git tag -a v1.0 -m "Release version 1.0"
B. git tag --light v1.0 -m "Release version 1.0"
C. git tag -l v1.0 -m "Release version 1.0"
D. git tag v1.0 -m "Release version 1.0"
Solution
Step 1: Identify annotated tag creation syntax
The -a flag creates an annotated tag, and -m adds a message.
Step 2: Check command correctness
git tag -a v1.0 -m "Release version 1.0" uses git tag -a v1.0 -m "Release version 1.0", which is the correct syntax.
Final Answer:
git tag -a v1.0 -m "Release version 1.0" -> Option A
Quick Check:
Annotated tag = git tag -a [OK]
Hint: Use -a flag for annotated tags with messages [OK]
Common Mistakes:
Using -l instead of -a for annotated tags
Omitting -a flag when adding a message
Using non-existent --light flag
3. Given the commands:
git tag v1.0
git tag -a v2.0 -m "Second release"
What will git show v1.0 display?
medium
A. It will list all tags including v1.0 and v2.0.
B. It will show the tag message "Second release".
C. It will show an error because v1.0 is not annotated.
D. It will show the commit details without any tag message.
Solution
Step 1: Understand lightweight tag behavior with git show
Lightweight tags are simple pointers, so git show shows commit info but no tag message.
Step 2: Compare with annotated tag output
Annotated tags show extra info like messages; lightweight tags do not.
Final Answer:
It will show the commit details without any tag message. -> Option D
Quick Check:
git show lightweight tag = commit info only [OK]
Hint: git show on lightweight tags shows commit only, no message [OK]
Common Mistakes:
Expecting a message on lightweight tags
Thinking git show errors on lightweight tags
Confusing git show output with git tag -l
4. You tried to create an annotated tag with git tag v1.1 -m "Update" but it created a lightweight tag instead. Why?
medium
A. Because -m cannot be used with annotated tags.
B. Because the -a flag was missing to specify an annotated tag.
C. Because the tag name v1.1 is invalid for annotated tags.
D. Because you need to push the tag first to make it annotated.
Solution
Step 1: Check command flags for annotated tags
Annotated tags require the -a flag; without it, tags are lightweight.
Step 2: Analyze the given command
The command lacks -a, so it created a lightweight tag despite the -m message.
Final Answer:
Because the -a flag was missing to specify an annotated tag. -> Option B
Quick Check:
Missing -a means lightweight tag [OK]
Hint: Always use -a for annotated tags, else lightweight is created [OK]
Common Mistakes:
Assuming -m alone creates annotated tags
Thinking tag name affects tag type
Believing pushing changes tag type
5. You want to mark a release with a tag that includes author info, date, and a message, and you want this tag to be signed cryptographically. Which tag type should you use and how?
hard
A. Use a signed annotated tag with git tag -s v3.0 -m "Release 3.0".
B. Use an annotated tag with git tag -a v3.0 -m "Release 3.0".
C. Use a lightweight tag with git tag v3.0.
D. Use a signed lightweight tag with git tag -s v3.0.
Solution
Step 1: Identify tag type for extra info and signing
Annotated tags store author, date, and message. Signed tags add cryptographic signature.
Step 2: Choose correct command for signed annotated tag
The -s flag creates a signed annotated tag with message and author info.
Final Answer:
Use a signed annotated tag with git tag -s v3.0 -m "Release 3.0". -> Option A
Quick Check:
Signed annotated tag = git tag -s [OK]
Hint: Use -s for signed annotated tags with full info [OK]