Git at BizzNEST
How we branch, commit, open pull requests, review code, and track work. Read it once top to bottom; keep the cheat sheet at the end open while you work.
How work flows
Every piece of work follows the same six steps. Scroll through them once; each one has its own section further down.
Every task starts as a GitHub issue with a description and labels. Add it to the project board and assign it to yourself when you start.
Branch off development. Name it with your initials, the issue number, and a short description.
Small commits, one scope each. Type, scope, and an imperative subject with no period.
Open a PR into development. Fill out every section of the template, link the issue, and assign two reviewers including a lead or admin.
Reviewers respond within 24 hours. Address every comment, push new commits, and re-request review.
Merge after approval. Move the card to Done and close the issue.
Branches
We follow Gitflow. Three long-lived branches, and short-lived task branches off development.
Hotfixes are the one exception: they branch off main and merge back into both main (tagged) and development.
Naming
- initials: yours, so everyone can see who owns the branch
- issue#: the GitHub issue number the branch relates to
- small-description: usually no more than 3 words
Alex fixing a bug on issue 111: ar-111-fix-uploader
Where PRs go
- Task branch →
development, reviewed by another developer development→stagingwhen code is locked in for a demodevelopment→mainwhen code is ready to deploy- Hotfixes branch off
main, then merge back intomain(tagged) anddevelopment
Pull the latest development, then merge it into your branch.
Commits
Our convention is based on the Karma Runner project. Small commits, one scope each, so they are easy to find, reason about, and revert.
Format
(blank line)
body — optional
- scope: one or two words in parentheses narrowing what changed
- subject: imperative mood, present tense, starts with a verb, no period at the end. Think newspaper headline.
- body: only when it helps — a new package, a build change, context a future developer needs, or a note to your senior developer on the last commit of a PR.
feat(login): create/setup
fix(uploader): handle empty files. resolves #111
The 8 types
These are your only options.
featfixdocsstylerefactortestchoreworkaroundYou changed app.component.ts, app.router.ts, login.component.ts, and login.component.scss. That is two scopes, so it is two commits:
git commit -m "refactor(app-component): import user service and add routes"git commit -m "feat(login): create/setup"Pull requests & reviews
Every pull request goes through a review. No exceptions.
- 01Open a PRFollow the PR template and fill out every section.
- 02Assign two reviewersOne must be a team lead or admin.
- 03Reviewers reply in 24hIf you are assigned, make time to review promptly.
- 04Address all feedbackMake the changes, push new commits, re-request review.
- 05Merge after approvalMerge into development per the branching guidelines.
What reviewers look for
Giving feedback
- Be specific: say what needs to change and why.
- Suggest alternatives instead of just saying “this is wrong.”
- Use GitHub’s suggestion feature to propose exact code changes.
- Keep it constructive and professional.
- Prefix optional suggestions with
nit:so the author knows it is not blocking.
Receiving feedback
- Reviews are about the code, not you.
- Ask clarifying questions if you do not understand a comment.
- Treat every review as a learning opportunity.
- Thank your reviewers.
Project board
GitHub Projects is how we track tasks, bugs, and progress. Your lead checks the board during standups and weekly meetings, so keep it accurate.
Issues first
- Every task starts as a GitHub issue, with a description of the work and labels for the type of task.
- Use the matching issue template: feature request, bug report, or epic.
- Add it to the board from the issue sidebar under Projects.
- Assign it to yourself when you start.
Daily habits
- Update your cards every day.
- Link PRs to issues with keywords like
Closes #12in the PR description. - Finish tasks before starting new ones.
- Blocked? Comment on the issue explaining why and mention your lead.
Repo setup & tooling
Creating a repository
- Create it under the BizzNEST organization using the
BizzNEST/.githubtemplate. Leave "Include all branches" unselected. - Name it for the topic and scope, lowercase with hyphens:
tesla-map,cool-app-api. - Write a description that defines the repo's scope.
- Visibility is Private. Always.
Local environment
git clone https://github.com/BizzNEST/your-repo.git
# install dependencies
npm i
# create .env in root for secrets
# run the dev server
npm start
VS Code extensions: Prettier for formatting, Live Server for preview. Mac setup: Homebrew, nvm, VS Code.
.env or credentials.json to GitHub.npm i every time you pull from origin so your dependencies match.Common mistakes
The things reviewers send back most often.
Before you open a PR
Run through this yourself. It is the same list your reviewers use.
Cheat sheet
Click any command to copy it.
<initials>-<issue#>-<desc>type(scope):subjectfeat fix docs style refactor test chore workaroundBlocked for more than 45 minutes? Post in your team channel. Want to improve these standards? Open an issue in the Standards & Practices repo.