Bird
Raised Fist0
Gitdevops~10 mins

Gitflow workflow - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the command to create a new feature branch in Gitflow.

Git
git checkout -b [1] develop
Drag options to blanks, or click blank then click option'
Afeature/new-feature
Bhotfix/urgent-fix
Crelease/v1.0
Dmaster
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'master' branch instead of 'develop' as base.
Naming the branch with 'hotfix/' prefix for a feature.
2fill in blank
medium

Complete the command to finish a feature branch and merge it back into develop.

Git
git checkout develop && git [1] feature/new-feature
Drag options to blanks, or click blank then click option'
Arebase
Bbranch
Cmerge
Dcommit
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'git branch' which only lists or creates branches.
Using 'git commit' which records changes but does not merge.
3fill in blank
hard

Fix the error in the command to start a hotfix branch from master.

Git
git checkout -b [1] master
Drag options to blanks, or click blank then click option'
Ahotfix/1.0.1
Bdevelop
Cfeature/hotfix-1
Drelease/1.0.1
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'feature/' prefix for a hotfix branch.
Starting hotfix branch from 'develop' instead of 'master'.
4fill in blank
hard

Fill both blanks to create a release branch and push it to remote.

Git
git checkout -b [1] develop && git push origin [2]
Drag options to blanks, or click blank then click option'
Arelease/v2.0
Bfeature/v2.0
Dhotfix/v2.0
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'feature/' prefix for a release branch.
Pushing a different branch name than created.
5fill in blank
hard

Fill all three blanks to finish a hotfix: merge into master, tag it, and merge into develop.

Git
git checkout master && git [1] hotfix/1.0.1 && git tag [2] && git checkout develop && git [3] hotfix/1.0.1
Drag options to blanks, or click blank then click option'
Amerge
Bv1.0.1
Dcommit
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'commit' instead of 'merge' to combine branches.
Forgetting to tag the release after merging.

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