Bird
Raised Fist0
Gitdevops~5 mins

Default branch name configuration in Git - 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
When you create a new Git repository, it automatically sets a default branch name. This default name can be changed to match your team's preferences or standards. Configuring the default branch name helps keep your projects consistent and clear.
When starting a new project and you want the main branch to be named something other than 'master'.
When your team has agreed to use 'main' instead of 'master' for inclusivity and clarity.
When setting up a new Git environment and you want all new repositories to use a specific default branch name.
When automating repository creation and you want to ensure the default branch name is consistent.
When migrating old repositories and you want to align the default branch name with new naming conventions.
Commands
This command sets the default branch name to 'main' for all new Git repositories you create on your computer. It changes the global Git configuration.
Terminal
git config --global init.defaultBranch main
Expected OutputExpected
No output (command runs silently)
--global - Applies the setting for the current user across all repositories.
This creates a new Git repository named 'my-new-repo' using the default branch name you set earlier, which is 'main'.
Terminal
git init my-new-repo
Expected OutputExpected
Initialized empty Git repository in /home/user/my-new-repo/.git/
Change directory into the new repository folder to start working inside it.
Terminal
cd my-new-repo
Expected OutputExpected
No output (command runs silently)
This command shows the current branches in the repository. You will see 'main' as the default branch name.
Terminal
git branch
Expected OutputExpected
* main
Key Concept

If you remember nothing else from this pattern, remember: setting 'init.defaultBranch' changes the default branch name for all new Git repositories you create.

Common Mistakes
Not using the --global flag when setting the default branch name.
The setting will only apply to the current repository, not globally for all new repositories.
Always include --global to set the default branch name for all new repositories on your machine.
Expecting the default branch name to change in existing repositories after setting init.defaultBranch.
This setting only affects new repositories created after the change, not existing ones.
Rename the branch manually in existing repositories if needed.
Summary
Set the default branch name globally using 'git config --global init.defaultBranch main'.
Create a new repository with 'git init my-new-repo' to see the new default branch name in action.
Verify the default branch name with 'git branch' inside the new repository.

Practice

(1/5)
1. What does the init.defaultBranch setting in Git control?
easy
A. The default user name for commits
B. The default remote repository URL
C. The default commit message template
D. The name of the main branch created when initializing a new repository

Solution

  1. Step 1: Understand the purpose of init.defaultBranch

    This setting defines the branch name Git uses when you run git init to create a new repository.
  2. Step 2: Identify what it controls

    It controls the default branch name, usually 'master' or 'main', for new repositories.
  3. Final Answer:

    The name of the main branch created when initializing a new repository -> Option D
  4. Quick Check:

    Default branch name = main branch name [OK]
Hint: Default branch name sets new repo's main branch [OK]
Common Mistakes:
  • Confusing branch name with remote URL
  • Thinking it sets commit message templates
  • Assuming it sets user info
2. Which of the following commands correctly sets the default branch name to main globally in Git?
easy
A. git set defaultBranch main
B. git config --global defaultBranch main
C. git config --global init.defaultBranch main
D. git init --default-branch=main

Solution

  1. Step 1: Recall the correct Git config syntax

    The correct syntax to set a global config is git config --global <key> <value>.
  2. Step 2: Match the key for default branch name

    The key is init.defaultBranch, so the full command is git config --global init.defaultBranch main.
  3. Final Answer:

    git config --global init.defaultBranch main -> Option C
  4. Quick Check:

    Use git config --global init.defaultBranch [OK]
Hint: Use full key: init.defaultBranch with git config [OK]
Common Mistakes:
  • Omitting 'init.' prefix in config key
  • Using 'git set' instead of 'git config'
  • Trying to set default branch during init command
3. After running git config --global init.defaultBranch develop, what will be the default branch name when you run git init in a new folder?
medium
A. master
B. develop
C. main
D. default

Solution

  1. Step 1: Understand the effect of the config command

    Setting init.defaultBranch to 'develop' globally changes the default branch name for all new repos initialized after this.
  2. Step 2: Predict the branch name after git init

    When you run git init, the initial branch will be named 'develop' instead of the usual 'master' or 'main'.
  3. Final Answer:

    develop -> Option B
  4. Quick Check:

    Config set to 'develop' means new repos start with 'develop' [OK]
Hint: New repos use branch name from init.defaultBranch [OK]
Common Mistakes:
  • Assuming default stays 'master' or 'main'
  • Confusing local repo branch with global config
  • Thinking config affects existing repos
4. You tried to set the default branch name with git config --global init.defaultbranch main but new repos still use 'master'. What is the problem?
medium
A. The config key is case-sensitive; it should be init.defaultBranch
B. You need to restart your terminal for changes to apply
C. You must run git init with a special flag to use the new default
D. The default branch name cannot be changed globally

Solution

  1. Step 1: Check the config key spelling

    Git config keys are case-sensitive. The correct key is init.defaultBranch with a capital 'B'.
  2. Step 2: Understand why the setting didn't apply

    Using init.defaultbranch (lowercase 'b') creates a different config entry that Git ignores for default branch naming.
  3. Final Answer:

    The config key is case-sensitive; it should be init.defaultBranch -> Option A
  4. Quick Check:

    Config keys are case-sensitive in Git [OK]
Hint: Check exact case of config keys [OK]
Common Mistakes:
  • Ignoring case sensitivity in config keys
  • Thinking terminal restart is needed
  • Believing default branch can't be changed
5. You want all new repositories on your system to start with the branch name stable. How do you set this globally and verify it?
hard
A. Run git config --global init.defaultBranch stable and then git config --global init.defaultBranch
B. Run git init --default-branch=stable and then git branch
C. Run git config --system init.defaultBranch stable and then git status
D. Run git set defaultBranch stable and then git config --list

Solution

  1. Step 1: Set the global default branch name

    Use git config --global init.defaultBranch stable to set the default branch name for all new repos globally.
  2. Step 2: Verify the setting

    Run git config --global init.defaultBranch to confirm the value is set to 'stable'.
  3. Final Answer:

    Run git config --global init.defaultBranch stable and then git config --global init.defaultBranch -> Option A
  4. Quick Check:

    Set with config, verify with config [OK]
Hint: Set and verify with git config commands [OK]
Common Mistakes:
  • Using incorrect commands like git set
  • Trying to verify with unrelated commands
  • Using system config without permission