Bird
Raised Fist0
Gitdevops~20 mins

.gitconfig file structure - 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
🎖️
.gitconfig Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding Sections in .gitconfig
Which section in a .gitconfig file is used to set the user's email address?
A[user]
B[core]
C[remote]
D[branch]
Attempts:
2 left
💡 Hint
Look for the section that stores user identity information.
💻 Command Output
intermediate
2:00remaining
Output of git config --list
Given this .gitconfig snippet, what will be the output of 'git config --list'?
Git
[core]
	editor = vim
[user]
	name = Alice
	email = alice@example.com
A
core.editor=vim
user.name=Alice
B
editor=vim
name=Alice
email=alice@example.com
C
core.editor=vim
user.name=Alice
user.email=alice@example.com
D
core.editor=vim
user.email=alice@example.com
Attempts:
2 left
💡 Hint
git config --list shows all key=value pairs with section prefixes.
Configuration
advanced
2:00remaining
Configuring Aliases in .gitconfig
Which .gitconfig snippet correctly defines an alias 'co' for 'checkout'?
A
[aliases]
	co = checkout
B
[alias]
	co = checkout
C
[alias]
	co: checkout
D
[alias]
	co-checkout = checkout
Attempts:
2 left
💡 Hint
Aliases are defined under the [alias] section with key = value syntax.
Troubleshoot
advanced
2:00remaining
Identifying Syntax Error in .gitconfig
Which option contains a syntax error that will cause git to fail reading the .gitconfig file?
A
[remote "origin"]
	url = https://github.com/user/repo.git
B
[core]
	editor = nano
C
[branch "main"]
	merge = refs/heads/main
D
[user]
name = Bob
Attempts:
2 left
💡 Hint
Check for missing indentation after section headers.
Best Practice
expert
2:00remaining
Best Practice for Global vs Local .gitconfig
Where should you place user-specific settings like name and email to apply them to all repositories on your machine?
AIn the global .gitconfig file located in the user's home directory
BIn the system-wide .gitconfig file in /etc/gitconfig
CIn the local .git/config file inside each repository
DIn the .gitignore file
Attempts:
2 left
💡 Hint
Think about settings that apply to all projects for one user.

Practice

(1/5)
1. What is the main structure used in a .gitconfig file to organize settings?
easy
A. XML tags with attributes
B. Plain text without any structure
C. Sections with key-value pairs
D. JSON objects and arrays

Solution

  1. Step 1: Understand the .gitconfig format

    The .gitconfig file organizes settings into sections, each marked by square brackets, like [user].
  2. Step 2: Recognize key-value pairs inside sections

    Within each section, settings are written as key = value pairs, for example, name = John.
  3. Final Answer:

    Sections with key-value pairs -> Option C
  4. Quick Check:

    .gitconfig uses sections and key-value pairs [OK]
Hint: Look for [section] headers and key = value lines [OK]
Common Mistakes:
  • Thinking .gitconfig uses JSON or XML
  • Assuming it's just plain text without structure
  • Confusing it with other config file formats
2. Which of the following is the correct syntax to set the user email in a .gitconfig file?
easy
A. [user] email = user@example.com
B. [user] email: user@example.com
C. user.email = user@example.com
D. { "user": { "email": "user@example.com" } }

Solution

  1. Step 1: Identify section and key-value syntax

    In .gitconfig, sections are in square brackets, and keys are assigned values with an equals sign.
  2. Step 2: Check each option's syntax

    [user] email = user@example.com correctly uses [user] section and email = user@example.com format. [user] email: user@example.com uses colon instead of equals, which is invalid. user.email = user@example.com lacks section brackets. { "user": { "email": "user@example.com" } } is JSON, not valid here.
  3. Final Answer:

    [user] email = user@example.com -> Option A
  4. Quick Check:

    Use [section] and key = value syntax [OK]
Hint: Use equals sign (=) inside [section] blocks [OK]
Common Mistakes:
  • Using colon (:) instead of equals (=)
  • Omitting section headers
  • Writing JSON instead of .gitconfig format
3. Given this .gitconfig snippet:
[alias]
  co = checkout
  br = branch
[user]
  name = Alice
  email = alice@example.com

What will be the output of git config --get alias.co?
medium
A. checkout
B. co
C. alias.co
D. Error: key not found

Solution

  1. Step 1: Understand alias section usage

    The alias section defines shortcuts for git commands. Here, co is set to checkout.
  2. Step 2: Interpret git config --get alias.co

    This command fetches the value of alias.co, which is 'checkout'.
  3. Final Answer:

    checkout -> Option A
  4. Quick Check:

    alias.co = checkout [OK]
Hint: Aliases map short names to commands, check their values [OK]
Common Mistakes:
  • Expecting the key name instead of its value
  • Confusing alias names with actual commands
  • Assuming error if alias exists
4. Identify the error in this .gitconfig snippet:
[core]
  editor nano
[user]
  name = Bob
medium
A. User name should be in quotes
B. Missing equals sign (=) after editor
C. Section name 'core' is invalid
D. Indentation is not allowed

Solution

  1. Step 1: Check key-value syntax in core section

    The line 'editor nano' lacks an equals sign; it should be 'editor = nano'.
  2. Step 2: Verify other parts

    The section name 'core' is valid, user name does not require quotes, and indentation is allowed for readability.
  3. Final Answer:

    Missing equals sign (=) after editor -> Option B
  4. Quick Check:

    Key-value pairs need '=' between key and value [OK]
Hint: Every setting line needs key = value format [OK]
Common Mistakes:
  • Forgetting the equals sign
  • Thinking quotes are mandatory for strings
  • Believing indentation breaks config
5. You want to add a global alias in your .gitconfig to make git st run git status. Which snippet correctly adds this alias globally?
hard
A. [alias] st = git status
B. [alias] st: status
C. alias.st = status
D. [alias] st = status

Solution

  1. Step 1: Understand alias syntax in .gitconfig

    Aliases are defined under [alias] section with key = command without 'git' prefix.
  2. Step 2: Evaluate each option

    [alias] st = status correctly sets 'st = status'. [alias] st: status uses colon instead of equals. alias.st = status uses invalid syntax without section. [alias] st = git status incorrectly includes 'git' in command.
  3. Final Answer:

    [alias] st = status -> Option D
  4. Quick Check:

    Alias commands omit 'git' and use key = value [OK]
Hint: Alias commands omit 'git' and use equals sign [OK]
Common Mistakes:
  • Including 'git' in alias command
  • Using colon instead of equals
  • Writing alias outside [alias] section