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 does the --oneline option do in git log?
It shows each commit as a single line with the commit hash and the commit message summary, making the log shorter and easier to read.
Click to reveal answer
beginner
How does the --graph option enhance the git log output?
It adds a text-based graph showing the branch structure and merges, helping visualize the commit history.
Click to reveal answer
intermediate
What is the purpose of the --pretty=format:"%h - %an, %ar : %s" option?
It customizes the log output to show the short commit hash, author name, relative date, and commit message in a specific format.
Click to reveal answer
intermediate
Explain the difference between --stat and --patch options in git log.
--stat shows a summary of changed files and lines added or removed. --patch shows the full changes (diff) made in each commit.
Click to reveal answer
beginner
What does the --abbrev-commit option do in git log?
It shortens the commit hash to a shorter unique prefix, making the log output more compact.
Click to reveal answer
Which git log option shows a simple one-line summary per commit?
A--oneline
B--patch
C--stat
D--graph
✗ Incorrect
The --oneline option condenses each commit to a single line with a short hash and message.
What does the --graph option add to the git log output?
ACommit timestamps only
BFull patch details
CAuthor email addresses
DA visual branch and merge graph
✗ Incorrect
The --graph option draws a text-based graph showing branches and merges.
Which option shows the detailed changes made in each commit?
A--patch
B--stat
C--oneline
D--abbrev-commit
✗ Incorrect
--patch shows the full diff of changes in each commit.
How can you customize the output format of git log?
AUsing <code>--stat</code>
BUsing <code>--oneline</code>
CUsing <code>--pretty=format:"..."</code>
DUsing <code>--graph</code>
✗ Incorrect
The --pretty=format:"..." option lets you define exactly what information to show and how.
What does --abbrev-commit do?
AShows full commit hashes
BShortens commit hashes
CShows author names only
DShows commit dates only
✗ Incorrect
--abbrev-commit shortens commit hashes to a unique prefix.
Describe three different ways to format the output of git log and what each shows.
Think about simple, visual, and custom formats.
You got /3 concepts.
Explain the difference between --stat and --patch options in git log.
One shows summary, the other shows details.
You got /2 concepts.
Practice
(1/5)
1. What does the %h placeholder represent in git log --pretty=format:"%h %s"?
easy
A. Author name
B. Abbreviated commit hash
C. Commit date
D. Full commit message
Solution
Step 1: Understand %h in git log format
The placeholder %h stands for the abbreviated commit hash, a short version of the commit ID.
Step 2: Compare with other placeholders
%an is author name, %cd is commit date, and %s is the commit message. So %h is unique for the commit hash.
Final Answer:
Abbreviated commit hash -> Option B
Quick Check:
Commit hash short form [OK]
Hint: Remember: %h = short hash, %an = author name [OK]
Common Mistakes:
Confusing %h with %an (author name)
Thinking %h shows full commit message
Mixing %h with commit date placeholder
2. Which of the following is the correct syntax to show the author name followed by commit message using git log --pretty=format?
easy
A. git log --pretty=format:"%an %s"
B. git log --pretty=format:"%s %an"
C. git log --pretty=format:"%author %message"
D. git log --pretty=format:"%name %subject"
Solution
Step 1: Identify correct placeholders for author and message
The correct placeholders are %an for author name and %s for commit message.
Step 2: Check syntax correctness
git log --pretty=format:"%an %s" uses %an %s which is valid. Options A and C use invalid placeholders. git log --pretty=format:"%s %an" reverses order but is still valid syntax, but question asks for author then message.
Final Answer:
git log --pretty=format:"%an %s" -> Option A
Quick Check:
Author then message [OK]
Hint: Use %an for author, %s for message in format string [OK]
Common Mistakes:
Using invalid placeholders like %author or %message
Swapping order when question specifies author first
Missing quotes around format string
3. What will be the output of this command if the latest commit hash is abc1234, author is Jane, and message is Fix bug?
git log -1 --pretty=format:"%h - %an: %s"
medium
A. Fix bug - Jane: abc1234
B. abc1234 Jane Fix bug
C. Jane - abc1234: Fix bug
D. abc1234 - Jane: Fix bug
Solution
Step 1: Understand placeholders in format string
The format string is %h - %an: %s. %h is abbreviated hash, %an is author name, %s is commit message.
Step 2: Substitute given values
Replacing placeholders: %h = abc1234, %an = Jane, %s = Fix bug. So output is "abc1234 - Jane: Fix bug".
Final Answer:
abc1234 - Jane: Fix bug -> Option D
Quick Check:
Format placeholders replaced correctly [OK]
Hint: Match placeholders to values exactly in order [OK]
Common Mistakes:
Mixing order of placeholders and values
Ignoring separators like '-' and ':'
Confusing full hash with abbreviated hash
4. You run git log --pretty=format:"%h %an %msg" but get an error. What is the problem?
medium
A. The placeholder %msg is invalid
B. Missing quotes around format string
C. Using %h and %an together is not allowed
D. Command needs --oneline option
Solution
Step 1: Identify invalid placeholder
The placeholder %msg does not exist in git log formatting. The correct placeholder for commit message is %s.
Step 2: Check other parts of command
Quotes are present, and using %h and %an together is valid. The --oneline option is optional and unrelated to this error.
Final Answer:
The placeholder %msg is invalid -> Option A
Quick Check:
Invalid placeholder causes error [OK]
Hint: Use %s for message, not %msg [OK]
Common Mistakes:
Typing %msg instead of %s
Forgetting quotes around format string
Assuming --oneline is required for formatting
5. You want to list commits showing only the abbreviated hash, author email, and commit date in ISO format. Which command achieves this?
hard
A. git log --pretty=format:"%h %an %cd" --date=short
B. git log --pretty=format:"%H %ae %cd" --date=iso
C. git log --pretty=format:"%h %ae %cd" --date=iso
D. git log --pretty=format:"%h %ae %cd" --date=relative
Solution
Step 1: Identify placeholders for required info
%h is abbreviated hash, %ae is author email, %cd is commit date.
Step 2: Choose correct date format option
--date=iso shows date in ISO 8601 format, which matches requirement.
Step 3: Verify options
git log --pretty=format:"%h %ae %cd" --date=iso matches all requirements. git log --pretty=format:"%h %an %cd" --date=short uses %an (author name) and short date, not email or ISO. git log --pretty=format:"%H %ae %cd" --date=iso uses %H (full hash), not abbreviated. git log --pretty=format:"%h %ae %cd" --date=relative uses relative date format, not ISO.
Final Answer:
git log --pretty=format:"%h %ae %cd" --date=iso -> Option C
Quick Check:
Abbreviated hash, email, ISO date [OK]
Hint: Use %ae for email and --date=iso for ISO date format [OK]