Bird
Raised Fist0
Gitdevops~5 mins

Git configuration (user.name, user.email) - Commands & Configuration

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
Introduction
Git needs to know who you are to record your name and email in each change you make. Setting your user name and email ensures your work is properly credited.
When you install Git for the first time on your computer and want to identify yourself.
When you start working on a new project and want your commits to show your correct name and email.
When you use multiple computers and want to set your identity on each one.
When you want to change your email or name for future commits.
When you want to use a different identity for a specific project.
Commands
This command sets your full name globally on your computer for all Git projects. It tells Git to use "Alice Johnson" as your name in commits.
Terminal
git config --global user.name "Alice Johnson"
Expected OutputExpected
No output (command runs silently)
--global - Sets the configuration for all repositories on your computer.
This command sets your email address globally on your computer for all Git projects. It tells Git to use this email in commits.
Terminal
git config --global user.email "alice.johnson@example.com"
Expected OutputExpected
No output (command runs silently)
--global - Sets the configuration for all repositories on your computer.
This command shows all your current Git settings, including your user name and email, so you can verify they are set correctly.
Terminal
git config --list
Expected OutputExpected
user.name=Alice Johnson user.email=alice.johnson@example.com ...
This command sets your user name only for the current Git project, overriding the global setting.
Terminal
git config user.name "Bob Smith"
Expected OutputExpected
No output (command runs silently)
This command sets your email only for the current Git project, overriding the global setting.
Terminal
git config user.email "bob.smith@example.com"
Expected OutputExpected
No output (command runs silently)
Key Concept

If you remember nothing else, remember: setting user.name and user.email tells Git who made each change.

Common Mistakes
Not setting user.name and user.email before making commits.
Git will use default or empty values, so your commits won't show your identity.
Always run git config --global user.name and git config --global user.email before committing.
Using --global when you want to set identity only for one project.
Your global settings will override project-specific needs and cause confusion.
Omit --global to set user.name and user.email only for the current repository.
Typing the commands without quotes around names or emails with spaces.
Git will misinterpret the command and fail to set the value correctly.
Always put your name and email inside double quotes if they contain spaces.
Summary
Set your user.name and user.email globally to identify yourself in all Git commits.
Use git config --list to check your current Git configuration.
Override global settings per project by running git config without --global.

Practice

(1/5)
1. What is the purpose of setting user.name and user.email in Git configuration?
easy
A. To set the default branch name
B. To enable Git debugging mode
C. To configure the remote repository URL
D. To label your commits with your identity

Solution

  1. Step 1: Understand Git commit metadata

    Git uses user.name and user.email to identify who made each commit.
  2. Step 2: Recognize the role of these settings

    These settings label your work so others know who made changes.
  3. Final Answer:

    To label your commits with your identity -> Option D
  4. Quick Check:

    user.name and user.email = commit identity [OK]
Hint: Remember: name and email tag your commits [OK]
Common Mistakes:
  • Confusing user.name with branch name
  • Thinking user.email sets remote URL
  • Assuming these enable debugging
2. Which command correctly sets your global Git user email to "user@example.com"?
easy
A. git config --email user@example.com --global
B. git config --global user.email user@example.com
C. git config user.email --global user@example.com
D. git set user.email global user@example.com

Solution

  1. Step 1: Recall correct Git config syntax

    The correct syntax is git config --global key value.
  2. Step 2: Match the command to set user.email globally

    git config --global user.email user@example.com matches this syntax exactly.
  3. Final Answer:

    git config --global user.email user@example.com -> Option B
  4. Quick Check:

    git config --global key value sets global config [OK]
Hint: Use 'git config --global key value' format [OK]
Common Mistakes:
  • Swapping order of flags and values
  • Using 'git set' instead of 'git config'
  • Placing --global after the key
3. Given these commands run in order:
git config --global user.name "Alice"
git config user.name "Bob"

What will git config user.name output inside the current repository?
medium
A. Bob
B. No output (empty)
C. Alice
D. Error: user.name not set

Solution

  1. Step 1: Understand global vs local config

    The first command sets user.name globally to "Alice". The second sets it locally to "Bob" in the current repo.
  2. Step 2: Determine which config is used

    Local config overrides global inside the repo, so git config user.name shows "Bob".
  3. Final Answer:

    Bob -> Option A
  4. Quick Check:

    Local config overrides global config [OK]
Hint: Local config overrides global config [OK]
Common Mistakes:
  • Assuming global always overrides local
  • Expecting empty output if local set
  • Confusing command order effects
4. You run git config user.email "wrongemail.com" but your commits still show the old email. What is the likely problem?
medium
A. You forgot to add --global or --local, so it set config in an unexpected scope
B. The email format is invalid, so Git ignored the setting
C. You need to restart Git for changes to apply
D. Git does not allow changing user.email once set

Solution

  1. Step 1: Check command scope

    Without --global or --local, Git sets config in the current repo (local) by default.
  2. Step 2: Understand why commits show old email

    If commits show old email, likely you changed config in a different scope than where commits are made.
  3. Final Answer:

    You forgot to add --global or --local, so it set config in an unexpected scope -> Option A
  4. Quick Check:

    Config scope matters; missing flags cause confusion [OK]
Hint: Always specify --global or --local to avoid confusion [OK]
Common Mistakes:
  • Assuming Git ignores invalid emails silently
  • Thinking Git needs restart after config change
  • Believing user.email is immutable
5. You want to set different user names and emails for two projects on the same computer. How do you configure Git correctly?
hard
A. Set user.name and user.email only locally in one project; global config is ignored
B. Set user.name and user.email only globally; Git automatically detects project differences
C. Set global user.name and user.email once, then override locally per project with git config user.name and git config user.email
D. Use environment variables instead of Git config to set user identity

Solution

  1. Step 1: Understand global and local config roles

    Global config applies to all repos unless overridden locally.
  2. Step 2: Apply local overrides per project

    Set local user.name and user.email in each project to customize identity per repo.
  3. Final Answer:

    Set global user.name and user.email once, then override locally per project with git config user.name and git config user.email -> Option C
  4. Quick Check:

    Global sets default; local overrides per project [OK]
Hint: Global sets default; local overrides per project [OK]
Common Mistakes:
  • Expecting Git to auto-detect project identities
  • Setting only local config and ignoring global
  • Using environment variables instead of config