Bird
Raised Fist0
Gitdevops~20 mins

Writing good commit messages in Git - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

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
Challenge - 5 Problems
🎖️
Commit Message Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Why use a short summary line in commit messages?

What is the main reason to keep the first line of a commit message short (around 50 characters)?

ATo include detailed explanations in the summary
BTo make the commit message harder to read
CTo ensure the summary fits well in logs and tools without wrapping
DTo avoid writing a detailed description later
Attempts:
2 left
💡 Hint

Think about how commit messages appear in common git tools and logs.

💻 Command Output
intermediate
1:30remaining
Output of git log with short commit messages

Given these two commits with short summary lines, what will git log --oneline show?

Git
commit 1a2b3c4
Author: Alice
Date: Today

Fix login bug

commit 5d6e7f8
Author: Bob
Date: Yesterday

Add user profile page
A
Fix login bug
Add user profile page
B
1a2b3c4 Fix login bug
5d6e7f8 Add user profile page
C
commit 1a2b3c4 Fix login bug
commit 5d6e7f8 Add user profile page
D
1a2b3c4
Fix login bug
5d6e7f8
Add user profile page
Attempts:
2 left
💡 Hint

Look at the format of git log --oneline output: it shows commit hash and summary.

🔀 Workflow
advanced
2:00remaining
Proper commit message structure

Which option shows the best structure for a detailed commit message?

A
Fix bug in login

This fixes the issue where users could not log in due to a missing token check.
BFix bug in login This fixes the issue where users could not log in due to a missing token check.
C
Fix bug in login
This fixes the issue where users could not log in due to a missing token check.
D
Fix bug in login


This fixes the issue where users could not log in due to a missing token check.
Attempts:
2 left
💡 Hint

Think about spacing between summary and description for readability.

Troubleshoot
advanced
1:30remaining
Identifying a poor commit message

Which commit message is least helpful for understanding the change?

AMiscellaneous fixes and improvements
BUpdate README with installation steps
CFix issue #123 by correcting token validation
DAdd unit tests for user authentication
Attempts:
2 left
💡 Hint

Look for vague or unclear messages.

Best Practice
expert
2:30remaining
Choosing the best commit message for a feature addition

You added a new feature to export user data as CSV. Which commit message best follows good commit message practices?

AFeature: CSV export for users
B
Added CSV export

Users can now export data.
C
CSV export

Export user data as CSV.
D
Add CSV export feature for user data

This feature allows users to export their data in CSV format for easier analysis and sharing.
Attempts:
2 left
💡 Hint

Look for clarity, completeness, and proper structure.

Practice

(1/5)
1. What is the main purpose of a good commit message in Git?
easy
A. To list all files changed in the commit
B. To explain what changes were made and why
C. To include the entire code change in the message
D. To write a long story about the project history

Solution

  1. Step 1: Understand the role of commit messages

    Commit messages should clearly explain what was changed and why, helping others understand the purpose.
  2. Step 2: Identify the best option

    To explain what changes were made and why correctly states the purpose, while others focus on irrelevant or incorrect details.
  3. Final Answer:

    To explain what changes were made and why -> Option B
  4. Quick Check:

    Good commit message = explain what and why [OK]
Hint: Focus on explaining changes and reasons, not details [OK]
Common Mistakes:
  • Listing files instead of explaining changes
  • Writing too much unrelated history
  • Including code in the message
2. Which of the following is the correct format for a good Git commit message?
easy
A. A message with only emojis
B. A long paragraph without a summary line
C. Only a list of changed files
D. A short summary line followed by a blank line and detailed explanation

Solution

  1. Step 1: Recall Git commit message format

    A good commit message starts with a short summary line, then a blank line, then optional details.
  2. Step 2: Match options to format

    A short summary line followed by a blank line and detailed explanation matches this format exactly; others do not follow best practices.
  3. Final Answer:

    A short summary line followed by a blank line and detailed explanation -> Option D
  4. Quick Check:

    Summary line + blank line + details = correct format [OK]
Hint: Use a short summary line, then details after a blank line [OK]
Common Mistakes:
  • Skipping the blank line between summary and details
  • Writing only a long paragraph
  • Using emojis without explanation
3. Given this commit message:
Fix login bug
What is missing to make it a good commit message?
medium
A. A detailed explanation of why the bug was fixed
B. A list of all files changed
C. A longer summary line
D. The author's email

Solution

  1. Step 1: Analyze the commit message content

    The message only has a short summary but lacks explanation of why the bug was fixed.
  2. Step 2: Identify what improves clarity

    Adding a detailed explanation helps others understand the reason behind the fix.
  3. Final Answer:

    A detailed explanation of why the bug was fixed -> Option A
  4. Quick Check:

    Good message = what + why, missing why here [OK]
Hint: Add why the change was made, not just what [OK]
Common Mistakes:
  • Only writing a short summary
  • Listing files instead of explanation
  • Adding unrelated info like author email
4. You wrote this commit message:
fix login bug
What is the main problem with this message?
medium
A. It includes a blank line after the summary
B. It is too long and detailed
C. It uses lowercase and lacks a capitalized summary
D. It uses past tense instead of present tense

Solution

  1. Step 1: Check capitalization in commit messages

    Good commit messages start with a capitalized summary line.
  2. Step 2: Evaluate the given message

    The message starts with lowercase 'fix', which is not recommended.
  3. Final Answer:

    It uses lowercase and lacks a capitalized summary -> Option C
  4. Quick Check:

    Summary line should start capitalized [OK]
Hint: Always capitalize the first letter of the summary line [OK]
Common Mistakes:
  • Starting summary with lowercase letter
  • Making summary too long
  • Ignoring tense conventions
5. You want to write a commit message for adding a new feature that improves search speed by caching results. Which commit message is best?
hard
A. Add caching to improve search speed Implemented a cache layer to store recent search results, reducing response time.
B. Improved search speed by adding cache Cache added.
C. Added cache This commit adds cache.
D. Fix search speed Cache implemented.

Solution

  1. Step 1: Evaluate clarity and detail in options

    Add caching to improve search speed Implemented a cache layer to store recent search results, reducing response time. has a clear summary and detailed explanation of what and why.
  2. Step 2: Compare other options

    The other options are vague, use incorrect tense or verbs (such as 'Fix' for a new feature), or lack detailed explanation.
  3. Final Answer:

    Add caching to improve search speed Implemented a cache layer to store recent search results, reducing response time. -> Option A
  4. Quick Check:

    Clear summary + detailed why = best commit message [OK]
Hint: Use clear summary and explain why change matters [OK]
Common Mistakes:
  • Using vague summaries
  • Wrong verbs like 'Fix' for new features
  • Too short or unclear explanations