Bird
Raised Fist0
Gitdevops~20 mins

Default branch name configuration 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
🎖️
Default Branch Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
1:30remaining
Check the current default branch name setting
What is the output of this command if the default branch name is set to 'main'?
Git
git config --global init.defaultBranch
Amain
Bmaster
Cdefault
Dorigin
Attempts:
2 left
💡 Hint
The command shows the configured default branch name for new repositories.
Configuration
intermediate
1:30remaining
Set the default branch name to 'develop'
Which command correctly sets the global default branch name to 'develop' for new git repositories?
Agit config --global init.defaultBranch= 'develop'
Bgit config --global init.defaultBranch=develop
Cgit config --global init.defaultBranch 'develop'
Dgit config --global init.defaultBranch develop
Attempts:
2 left
💡 Hint
The correct syntax uses a space between the key and value without equals sign.
Troubleshoot
advanced
2:00remaining
Why does 'git init' still create 'master' branch after setting defaultBranch?
You set the default branch name globally to 'main' using 'git config --global init.defaultBranch main'. But when you run 'git init' in a new folder, the branch is still named 'master'. What is the most likely reason?
AThe git version is older and does not support init.defaultBranch setting
BYou need to restart the terminal for the setting to apply
CThe repository already exists with master branch
DYou must set init.defaultBranch locally, not globally
Attempts:
2 left
💡 Hint
Check your git version supports this feature introduced recently.
🔀 Workflow
advanced
2:30remaining
Change default branch name in an existing repository
You want to rename the default branch from 'master' to 'main' in an existing git repository. Which sequence of commands correctly achieves this?
A
git branch -m main master
git push origin master
git push origin --delete main
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
B
git branch -m master main
git push origin main
git push origin --delete master
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
C
git branch -m master main
git push origin main
git push origin --delete main
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
D
git branch -m main master
git push origin main
git push origin --delete master
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
Attempts:
2 left
💡 Hint
Rename branch locally, push new branch, delete old branch remotely, update HEAD reference.
Best Practice
expert
3:00remaining
Best practice for setting default branch name in a team environment
In a team using git, what is the best practice to ensure all members use 'main' as the default branch name for new repositories?
AAsk each member to run 'git config --global init.defaultBranch main' on their machines
BCreate a script that runs 'git init -b main' and share it with the team
CSet the default branch name in the central repository hosting service settings (e.g., GitHub) and document it
DIgnore default branch naming and rename branches manually after creation
Attempts:
2 left
💡 Hint
Centralized control and documentation help maintain consistency.

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