Skip to content

Step by Step Developement guide

Finn van Montfort edited this page Dec 2, 2025 · 7 revisions

Prerequisites

  • Git installed (>=2.x)
  • Access to repo and correct remote origin with push perms
  • Local main and develop tracking set up: git checkout main && git pull origin main and git checkout develop && git pull origin develop

Day-to-day workflow (feature development)

  1. Branch off develop

    git checkout develop
    git pull origin develop
    git checkout -b feature/BRANCH

Branch Naming Conventions can be found here https://github.com/Exeter-Computer-Science-Society/hack-sw-2/wiki/Branching-Strategy

  1. Work locally & commit often

    • Small, focused commits.
    • Write descriptive commit messages (see Commit Style below).
  2. Keep your branch up-to-date (choose merge or rebase strategy; team policy should define this).

    • Rebase (keeps history linear):

      git fetch origin
      git checkout feature/your-branch
      git rebase origin/develop
      # resolve conflicts, git rebase --continue
      git push --force-with-lease origin feature/your-branch
    • Merge:

      git fetch origin
      git checkout feature/your-branch
      git merge origin/develop
      # resolve conflicts, commit
      git push origin feature/your-branch
  3. Open a Pull Request (PR) targeting develop once work is ready.

    • Fill PR template, include screenshots, test steps, and link issue/ticket.
    • Add reviewers and necessary labels.
  4. Address review feedback and push changes to the same feature branch.

  5. After approvals & passing CI — merge PR into develop.

    • Use the team's merge strategy (Squash, Rebase & Merge, or Merge Commit).
    • If required, delete the remote branch after merging.

Preparing a release

  1. Create a release branch from develop when develop contains the features for the next release.

    git checkout develop
    git pull origin develop
    git checkout -b release/1.2.0
    git push -u origin release/1.2.0
  2. Stabilize and test on release/1.2.0: bump version numbers, finalize changelog, run full test suite.

  3. Fixes go into the release/* branch and are tested.

  4. When ready, merge into main and develop

    # merge release into main
    git checkout main
    git pull origin main
    git merge --no-ff release/1.2.0
    git tag -a v1.2.0 -m "Release 1.2.0"
    git push origin main --tags
    
    # merge release back into develop (to carry over any release-only commits)
    git checkout develop
    git pull origin develop
    git merge --no-ff release/1.2.0
    git push origin develop
    
    # optionally delete release branch
    git branch -d release/1.2.0
    git push origin --delete release/1.2.0

Use --no-ff if you want an explicit merge commit for the release in history.


Hotfix workflow

  1. Branch from main

    git checkout main
    git pull origin main
    git checkout -b hotfix/1.2.1
  2. Implement the fix, commit, push

  3. Open PR targeting main (and optionally develop depending on process).

  4. Merge into main, tag, and merge back into develop

    git checkout main
    git merge --no-ff hotfix/1.2.1
    git tag -a v1.2.1 -m "Hotfix 1.2.1"
    git push origin main --tags
    
    git checkout develop
    git merge --no-ff hotfix/1.2.1
    git push origin develop

Commit Message Template

Title:

Changes:

Testing:

Closes:

Clone this wiki locally