🎯 Objective
Demonstrate your ability to manage a real-world Git branching workflow using GitHub Desktop — including branching, merging, rollback, hotfix, cherry-pick, and selective demo deployment.
🧰 Tools Required
-
GitHub Desktop (main tool) 👉Download here
-
A GitHub account to host your repository
-
(Optional) Git CLI for log inspection (
git log --oneline --graph --all)
🧱 Part 1: Repository Setup
-
Create a new GitHub repository and clone it locally with GitHub Desktop.
-
In GitHub Desktop, create these branches:
-
dev -
beta -
production
-
-
Publish all branches to GitHub.
🔁 Part 2: Basic Commit & Merge Workflow
-
On
dev, make a small change (e.g., editREADME.md) and commit it using GitHub Desktop. -
In GitHub:
-
Switch to
beta→ merge requestdevintobeta. -
Switch to
production→ merge requestbetaintoproduction.
-
-
Push all changes to GitHub.
✅ Result: All branches are synchronized with the first feature.
💥 Part 3: Faulty Commit & Rollback
-
On
dev, make another commit simulating a buggy feature. -
Merge upward (
dev → beta → production). -
Simulate an error in
production. -
Rollback procedure:
-
On
production, revert the faulty commit (“Revert this commit” in GitHub Desktop). -
Merge the rollback
production → beta. -
Merge again
beta → dev.
-
✅ Result: All branches return to a clean state.
🐞 Part 4: Hotfix Workflow
-
On
production, make a hotfix commit (e.g., fix typo or restore functionality). -
Merge the hotfix downstream:
-
production → beta -
beta → dev
-
✅ Result: All branches include the hotfix.
🧩 Part 5: Merge Into Current Branch
-
On
beta, make a new bug-fix commit that is not yet released to production. -
In GitHub Desktop, open the Branch tab on
beta, right-click that commit, and choose:
→ “Merge into current branch.” -
Take a screenshot showing this action in GitHub Desktop.
✅ Result: The fix exists in beta and dev, but not in production.
🚀 Part 6: Selective Demo on Production
-
On the
devbranch, make three new feature commits (e.g.,feature-A,feature-B,feature-C). -
For a quick demo requirement, only two features (
AandB) need to be shown onproduction. -
Using GitHub Desktop, from the
devbranch history:-
Right-click each of the two chosen commits and select “Cherry-pick commit…”
-
-
Do not cherry-pick the third commit (
feature-C). -
Push to GitHub and take a screenshot of the cherry-pick history in GitHub Desktop.
✅ Result: Production contains only selected demo features, while dev keeps all three commits.
📤 Submission Requirements
Submit on Moodle:
-
GitHub repository link (public or private invite).
-
Screenshots:
-
Branch view showing
dev,beta,production. -
Merge history / Git graph.
-
Cherry-pick screenshots (Parts 5 and 6).
-
-
README.md explaining:
-
Branch purposes and commit sequence.
-
Rollback, hotfix, and selective demo logic.
-
Why cherry-pick is useful in staged releases.
-
🧮 Evaluation Criteria (100 pts)
| Criteria | Points | Description |
|---|---|---|
| Repository & Branch Setup | 10 | Created and published dev, beta, production branches |
| Commit & Merge Flow | 15 | Proper order of commits and merges using GitHub Desktop |
| Rollback Process | 15 | Accurate revert and propagation |
| Hotfix Process | 10 | Correctly applied and merged back downstream |
| Merge Into Current Branch (Beta→Dev) | 15 | Successful merge into current branch with screenshot |
| Selective Demo (Dev→Production) | 20 | Two specific commits cherry-picked correctly into production |
| Documentation & Clarity | 15 | Clear README and organized commit messages |
💡 Tips
-
Use clear commit messages:
feat: add feature A•feat: add feature B•fix: rollback buggy feature•hotfix: patch production -
Always pull latest before merging or cherry-picking.
-
Use GitHub Desktop’s History and Branch Graph to visualize workflows.
-
Add your
git log --oneline --graph --allas an image for bonus clarity.