Bird
Raised Fist0
Gitdevops~5 mins

Global vs local configuration in Git - Quick Revision & Key Differences

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
Recall & Review
beginner
What is the difference between global and local configuration in Git?
Global configuration applies settings to all repositories for a user on a machine, while local configuration applies settings only to a specific repository.
Click to reveal answer
beginner
How do you set your user name globally in Git?
Use the command: git config --global user.name "Your Name" to set your user name for all repositories.
Click to reveal answer
beginner
How do you check the local Git configuration for a repository?
Run git config --local --list inside the repository folder to see local settings.
Click to reveal answer
intermediate
If a setting exists in both global and local Git configurations, which one takes effect?
The local configuration overrides the global configuration for that repository.
Click to reveal answer
intermediate
Where are Git global and local configuration files stored?
Global config is stored in ~/.gitconfig (user home directory). Local config is stored in .git/config inside the repository folder.
Click to reveal answer
Which command sets a Git configuration only for the current repository?
Agit config --local user.email "email@example.com"
Bgit config --global user.email "email@example.com"
Cgit config --system user.email "email@example.com"
Dgit config --all user.email "email@example.com"
Where is the global Git configuration file located?
A.git/config
B/etc/gitconfig
C~/.gitconfig
D/usr/local/gitconfig
If a Git setting is defined both globally and locally, which setting is used when working in that repository?
AGlobal setting
BLocal setting
CSystem setting
DThe first one set
What does the command git config --list show by default?
AAll configuration including system, global, and local
BOnly global configuration
COnly local configuration
DOnly system configuration
Which Git configuration level applies settings for all users on a system?
ALocal
BGlobal
CUser
DSystem
Explain the difference between Git global and local configuration and when you would use each.
Think about settings that apply everywhere vs. settings for one project.
You got /4 concepts.
    Describe how Git decides which configuration to use if the same setting exists in multiple places.
    Consider the scope of each config level.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main difference between git config --global and git config --local?
      easy
      A. Local config is stored in the user's home directory.
      B. Global config applies only to the current project; local config applies to all projects.
      C. Global config overrides local config settings.
      D. Global config applies to all projects; local config applies only to the current project.

      Solution

      1. Step 1: Understand global configuration scope

        Global configuration applies settings to all Git projects on the computer, stored in the user's home directory.
      2. Step 2: Understand local configuration scope

        Local configuration applies only to the current Git project and overrides global settings if both exist.
      3. Final Answer:

        Global config applies to all projects; local config applies only to the current project. -> Option D
      4. Quick Check:

        Global = all projects, Local = current project [OK]
      Hint: Global is for all projects, local is project-specific [OK]
      Common Mistakes:
      • Confusing which config applies globally or locally
      • Thinking local config is stored in home directory
      • Assuming global config overrides local config
      2. Which of the following commands correctly sets the user email only for the current Git project?
      easy
      A. git config --global user.email "user@example.com"
      B. git config --system user.email "user@example.com"
      C. git config user.email "user@example.com"
      D. git set user.email "user@example.com"

      Solution

      1. Step 1: Identify the correct command for local config

        By default, git config without --global or --system sets local config for the current project.
      2. Step 2: Check command syntax

        git config --local is valid but optional; git config user.email "user@example.com" is the simplest correct form.
      3. Final Answer:

        git config user.email "user@example.com" -> Option C
      4. Quick Check:

        Local config uses git config without --global [OK]
      Hint: Use git config without --global for local settings [OK]
      Common Mistakes:
      • Using --global when wanting local config
      • Using invalid command like git set
      • Assuming --local is mandatory
      3. Given these commands run in order inside a Git project:
      git config --global user.name "GlobalUser"
      git config user.name "LocalUser"
      git config user.name

      What will be the output of the last command?
      medium
      A. GlobalUser
      B. LocalUser
      C. No output (empty)
      D. Error: user.name not set

      Solution

      1. Step 1: Understand config precedence

        Local config overrides global config when both exist for the same key.
      2. Step 2: Analyze the commands

        First sets global user.name to "GlobalUser", then local user.name to "LocalUser". The last command reads the effective user.name, which is local.
      3. Final Answer:

        LocalUser -> Option B
      4. Quick Check:

        Local overrides global, so output is LocalUser [OK]
      Hint: Local config overrides global for same key [OK]
      Common Mistakes:
      • Assuming global config always shows
      • Thinking last set value globally is used
      • Confusing output with error
      4. You ran git config --local user.name "Alice" but git config user.name still shows "Bob". What is the most likely problem?
      medium
      A. You are not inside a Git repository directory.
      B. You used --local incorrectly; it should be --global.
      C. The global config is overriding the local config.
      D. The user.name key is misspelled.

      Solution

      1. Step 1: Check local config requirements

        Local config applies only inside a Git repository folder. Outside, local config commands fail silently or do not apply.
      2. Step 2: Understand why global shows instead

        If outside a repo, local config is ignored, so global config value "Bob" is shown.
      3. Final Answer:

        You are not inside a Git repository directory. -> Option A
      4. Quick Check:

        Local config needs repo folder [OK]
      Hint: Local config works only inside a Git repo folder [OK]
      Common Mistakes:
      • Assuming global always overrides local
      • Using wrong option --global instead of --local
      • Misspelling config keys
      5. You want to set your Git user email globally but override it with a different email for a specific project. Which sequence of commands achieves this?
      hard
      A. git config --global user.email "global@example.com"
      git config --local user.email "project@example.com" (inside project)
      B. git config --local user.email "global@example.com"
      git config --global user.email "project@example.com"
      C. git config user.email "global@example.com" (inside project)
      git config --global user.email "project@example.com"
      D. git config --global user.email "project@example.com"
      git config user.email "global@example.com" (inside project)

      Solution

      1. Step 1: Set global email first

        Use git config --global user.email "global@example.com" to set the default email for all projects.
      2. Step 2: Override locally inside the project

        Inside the project folder, run git config --local user.email "project@example.com" to override the global email only for that project.
      3. Final Answer:

        git config --global user.email "global@example.com" followed by git config --local user.email "project@example.com" inside project -> Option A
      4. Quick Check:

        Global first, then local override inside project [OK]
      Hint: Set global first, then local inside project to override [OK]
      Common Mistakes:
      • Setting local config before global
      • Using local config outside project folder
      • Confusing which email applies where