# Git Versioning & Workflow Scenarios (faq2)

- Bare repo = server storage only; never work inside it.
- Working copies (server, macOS) are where you edit/commit.
- Use `main` + tags (`v1`, `v2`, `v2.1`) for releases.

## Typical release flow

```bash
git checkout main
git pull
# edit & test
git add -A
git commit -m "Work for next release"
./git-bump-version 2.1.0
git push origin main
git push origin --tags
```

## Testing old versions

```bash
git fetch --tags
git checkout v2.0.0   # inspect/test
git checkout main     # back to dev
```

## macOS dev

- Clone bare repo to Mac.
- Work on `main` or feature branches.
- Commit, bump version, push branch + tags.
- Server pulls to update.
