Bird
Raised Fist0
Gitdevops~20 mins

Merge commit creation 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
🎖️
Merge Commit Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of a successful merge commit?
You run git merge feature-branch on your main branch. The merge completes without conflicts and creates a merge commit. What will git log --oneline -1 show as the commit message?
ARevert "feature-branch"
BInitial commit
CMerge branch 'feature-branch'
DFix typo in README
Attempts:
2 left
💡 Hint
Think about the default message git uses when creating a merge commit.
🧠 Conceptual
intermediate
2:00remaining
What happens during a merge commit creation?
Which of the following best describes what a merge commit does in git?
AIt combines the histories of two branches by creating a new commit with two parents.
BIt deletes the source branch after merging.
CIt creates a new branch from the current commit.
DIt rewrites the commit history of the target branch.
Attempts:
2 left
💡 Hint
Think about how git tracks the relationship between branches after merging.
🔀 Workflow
advanced
2:00remaining
Identify the correct git commands to create a merge commit
You want to merge the branch feature into main and create a merge commit even if the merge could be fast-forwarded. Which sequence of commands will do this?
A
git checkout main

git merge feature
B
git checkout main

git merge --no-ff feature
C
git checkout feature

git merge main
Dgit merge --no-ff main feature
Attempts:
2 left
💡 Hint
Remember to be on the target branch before merging and use the option to force a merge commit.
Troubleshoot
advanced
2:00remaining
Why does git refuse to create a merge commit?
You run git merge feature on main, but git fast-forwards instead of creating a merge commit. You want a merge commit. What is the reason?
AGit does not support merge commits.
BThe feature branch has conflicts that prevent a merge commit.
CYou are not on the main branch when running the merge.
DThe feature branch is ahead and main has no new commits, so git fast-forwards by default.
Attempts:
2 left
💡 Hint
Think about when git chooses to fast-forward merges.
Best Practice
expert
2:00remaining
What is the best practice for merge commit messages?
When creating a merge commit manually, which message style is recommended to keep history clear and useful?
AUse the default message like "Merge branch 'feature'" and add a short description of changes.
BWrite only the branch name without any description.
CUse a generic message like "Update" for all merges.
DDelete the commit message to keep history clean.
Attempts:
2 left
💡 Hint
Think about clarity and usefulness for future readers of the history.

Practice

(1/5)
1. What does a git merge <branch-name> command do in Git?
easy
A. Combines changes from the specified branch into the current branch with a merge commit
B. Deletes the specified branch from the repository
C. Creates a new branch named after the specified branch
D. Resets the current branch to the specified branch's state without merging

Solution

  1. Step 1: Understand the purpose of git merge

    The git merge <branch-name> command is used to combine changes from another branch into the current branch.
  2. Step 2: Identify the result of the merge

    This operation creates a merge commit that records the integration of changes from both branches.
  3. Final Answer:

    Combines changes from the specified branch into the current branch with a merge commit -> Option A
  4. Quick Check:

    Merge command = combine branches with commit [OK]
Hint: Merge means combine branches with a commit [OK]
Common Mistakes:
  • Confusing merge with branch deletion
  • Thinking merge creates a new branch
  • Assuming merge resets branch without commit
2. Which of the following is the correct syntax to create a merge commit from branch feature into the current branch?
easy
A. git merge feature
B. git merge -b feature
C. git merge --delete feature
D. git merge --reset feature

Solution

  1. Step 1: Recall the basic merge syntax

    The correct syntax to merge a branch is git merge <branch-name> without extra flags for a normal merge commit.
  2. Step 2: Evaluate the options

    git merge feature matches the correct syntax. The other options use invalid or unrelated flags.
  3. Final Answer:

    git merge feature -> Option A
  4. Quick Check:

    Simple merge = git merge branch [OK]
Hint: Use 'git merge branch-name' to merge simply [OK]
Common Mistakes:
  • Adding unnecessary flags like -b or --delete
  • Confusing merge with branch creation or deletion commands
  • Using reset flag which is unrelated to merge
3. Given the following commands executed in order:
git checkout main
git merge feature

What will Git do if there are no conflicts between main and feature and the branches have diverged?
medium
A. Reset main branch to feature branch state without commit
B. Delete the feature branch automatically
C. Create a merge commit combining changes from feature into main
D. Fail with an error asking to resolve conflicts

Solution

  1. Step 1: Understand the merge process without conflicts

    If there are no conflicts and the branches have diverged, Git will automatically create a merge commit combining changes from the feature branch into main.
  2. Step 2: Confirm no branch deletion or errors occur

    Git does not delete branches or reset branches automatically during merge without conflicts.
  3. Final Answer:

    Create a merge commit combining changes from feature into main -> Option C
  4. Quick Check:

    No conflicts + diverged = auto merge commit [OK]
Hint: No conflicts + diverged means merge commit created automatically [OK]
Common Mistakes:
  • Thinking feature branch is deleted after merge
  • Expecting errors when no conflicts exist
  • Confusing merge with reset or branch deletion
4. You run git merge feature but Git reports conflicts. What should you do next to complete the merge?
medium
A. Delete the current branch and recreate it to fix conflicts
B. Run git merge --abort to cancel the merge and delete the feature branch
C. Run git reset --hard to force merge without fixing conflicts
D. Manually fix conflicts in files, then run git add and git commit

Solution

  1. Step 1: Understand conflict resolution process

    When Git reports conflicts, you must manually fix the conflicting files by editing them.
  2. Step 2: Complete the merge after fixing conflicts

    After fixing, stage the changes with git add and finish the merge with git commit.
  3. Final Answer:

    Manually fix conflicts in files, then run git add and git commit -> Option D
  4. Quick Check:

    Fix conflicts, add, commit to complete merge [OK]
Hint: Fix conflicts manually, then add and commit [OK]
Common Mistakes:
  • Aborting merge and deleting branches unnecessarily
  • Using reset to skip conflict resolution
  • Deleting branches instead of resolving conflicts
5. You want to merge branch feature into main but avoid creating a merge commit. Which command should you use?
hard
A. git merge --no-ff feature
B. git merge --squash feature
C. git merge --ff-only feature
D. git merge --abort feature

Solution

  1. Step 1: Understand merge commit creation options

    The --squash option merges changes without creating a merge commit by combining all changes into one commit.
  2. Step 2: Compare other options

    --no-ff forces a merge commit, --ff-only only merges if fast-forward is possible, and --abort cancels merges.
  3. Final Answer:

    git merge --squash feature -> Option B
  4. Quick Check:

    Squash merges without merge commit [OK]
Hint: Use --squash to merge without merge commit [OK]
Common Mistakes:
  • Using --no-ff which forces merge commit
  • Confusing --ff-only with no commit creation
  • Trying to abort merge to avoid commit