Bird
Raised Fist0
Gitdevops~20 mins

Gitflow workflow - 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
🎖️
Gitflow Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Purpose of the 'develop' branch in Gitflow
In the Gitflow workflow, what is the main purpose of the develop branch?
AIt is the branch where hotfixes are directly applied to fix production bugs.
BIt serves as the integration branch where features are merged before release.
CIt is the main branch that always contains production-ready code.
DIt is used only for experimental features that may never be released.
Attempts:
2 left
💡 Hint
Think about where developers combine their work before making a release.
💻 Command Output
intermediate
1:30remaining
Output of starting a feature branch in Gitflow
What is the expected output when running the command git flow feature start login in a Gitflow-enabled repository?
Git
git flow feature start login
A
Switched to a new branch 'feature/login'
Summary of commands to finish the feature.
BError: 'feature/login' branch already exists.
C
Switched to branch 'develop'
No feature branch created.
DFeature 'login' started but not switched to the branch.
Attempts:
2 left
💡 Hint
Starting a feature branch creates and switches to it.
🔀 Workflow
advanced
2:00remaining
Correct sequence to finish a release in Gitflow
What is the correct sequence of steps to finish a release branch in Gitflow?
A1,2,3,4
B3,1,2,4
C1,3,2,4
D2,1,3,4
Attempts:
2 left
💡 Hint
Think about finalizing the release for production and syncing develop.
Troubleshoot
advanced
1:30remaining
Error when finishing a hotfix branch
You run git flow hotfix finish v1.2.1 but get an error saying fatal: You are not currently on a branch. What is the most likely cause?
AYou have uncommitted changes preventing finishing the hotfix.
BThe hotfix branch 'hotfix/v1.2.1' does not exist.
CYou are in detached HEAD state and not on the hotfix branch.
DThe main branch is missing and cannot merge hotfix.
Attempts:
2 left
💡 Hint
Check which branch you are currently on before finishing.
Best Practice
expert
1:30remaining
Recommended practice for naming feature branches in Gitflow
Which naming convention for feature branches follows best practices in Gitflow to keep the repository organized?
AloginFeature
BfeatureLogin
Cfeat_login
Dfeature/login-page
Attempts:
2 left
💡 Hint
Consider readability and consistency with Gitflow defaults.

Practice

(1/5)
1. What is the main purpose of the develop branch in the Gitflow workflow?
easy
A. It serves as the integration branch for features before release.
B. It contains the production-ready code only.
C. It is used to fix urgent bugs directly in production.
D. It stores experimental code that is not stable.

Solution

  1. Step 1: Understand the role of the develop branch

    The develop branch is where all completed features are merged and tested together before release.
  2. Step 2: Compare with other branches

    The master branch holds production-ready code, hotfix branches fix urgent bugs, and experimental code is not part of Gitflow standard branches.
  3. Final Answer:

    It serves as the integration branch for features before release. -> Option A
  4. Quick Check:

    Develop = integration branch [OK]
Hint: Develop branch integrates features before release [OK]
Common Mistakes:
  • Confusing develop with master branch
  • Thinking develop is for hotfixes
  • Assuming develop holds only stable code
2. Which command correctly starts a new feature branch named login using Gitflow?
easy
A. git flow start feature login
B. git flow feature start login
C. git start feature login
D. git feature start login

Solution

  1. Step 1: Recall Gitflow feature start syntax

    The correct syntax to start a feature branch is git flow feature start <name>.
  2. Step 2: Check each option

    Only git flow feature start login matches the correct syntax exactly. Others have incorrect order or missing 'flow'.
  3. Final Answer:

    git flow feature start login -> Option B
  4. Quick Check:

    Feature start = git flow feature start [OK]
Hint: Use 'git flow feature start <name>' to start features [OK]
Common Mistakes:
  • Omitting 'flow' in the command
  • Swapping command word order
  • Using 'git start' instead of 'git flow feature start'
3. Given the commands below, what is the final branch after finishing a release?
git flow release start 1.0.0
git flow release finish 1.0.0
medium
A. The branch is switched to master.
B. The branch is switched to develop.
C. The branch remains on release/1.0.0.
D. The branch is switched to feature/1.0.0.

Solution

  1. Step 1: Understand what 'git flow release finish' does

    This command merges the release branch into both master and develop, tags the release, and deletes the release branch.
  2. Step 2: Identify the branch after finishing release

    After finishing, Gitflow switches to master branch by default.
  3. Final Answer:

    The branch is switched to master. -> Option A
  4. Quick Check:

    Release finish switches to master [OK]
Hint: Release finish merges and switches to master [OK]
Common Mistakes:
  • Assuming branch stays on release
  • Thinking it switches to develop
  • Confusing feature branches with release
4. You ran git flow feature finish login but your changes are not in develop. What is the likely problem?
medium
A. You forgot to push the develop branch after finishing the feature.
B. You did not commit changes before finishing the feature.
C. You started the feature branch from master instead of develop.
D. You finished the feature on the master branch.

Solution

  1. Step 1: Recall feature branch base in Gitflow

    Feature branches should start from develop to ensure changes merge back there.
  2. Step 2: Analyze why changes are missing in develop

    If the feature branch was started from master, finishing it merges changes into master, not develop, causing missing updates in develop.
  3. Final Answer:

    You started the feature branch from master instead of develop. -> Option C
  4. Quick Check:

    Feature base must be develop [OK]
Hint: Feature branches must start from develop [OK]
Common Mistakes:
  • Assuming finishing auto-pushes changes
  • Not committing before finishing
  • Confusing master and develop as base
5. Your team wants to prepare a hotfix for a critical bug in production while a release is in progress. According to Gitflow, which sequence of commands correctly handles this situation?
hard
A. git flow hotfix start fix-bug; git flow release finish; git flow hotfix finish fix-bug
B. git flow release finish; git flow hotfix start fix-bug; git flow hotfix finish fix-bug
C. git flow feature start fix-bug; git flow feature finish fix-bug
D. git flow hotfix start fix-bug; git flow hotfix finish fix-bug

Solution

  1. Step 1: Understand hotfix purpose in Gitflow

    Hotfix branches are created from master to quickly fix production bugs, independent of ongoing releases.
  2. Step 2: Check command sequence for hotfix

    Starting and finishing a hotfix with git flow hotfix start and git flow hotfix finish is the correct way, regardless of release status.
  3. Step 3: Evaluate options

    git flow hotfix start fix-bug; git flow hotfix finish fix-bug correctly starts and finishes the hotfix. git flow release finish; git flow hotfix start fix-bug; git flow hotfix finish fix-bug delays hotfix until release finishes, which is not required. git flow feature start fix-bug; git flow feature finish fix-bug uses feature instead of hotfix. git flow hotfix start fix-bug; git flow release finish; git flow hotfix finish fix-bug incorrectly mixes release finish before hotfix finish.
  4. Final Answer:

    git flow hotfix start fix-bug; git flow hotfix finish fix-bug -> Option D
  5. Quick Check:

    Hotfix runs independently during release [OK]
Hint: Hotfix branches start and finish independently from release [OK]
Common Mistakes:
  • Waiting for release to finish before hotfix
  • Using feature branch for hotfix
  • Finishing release before hotfix finish