Get started
Concepts
Projects, branches, versions, and releases, and how they relate.
GigaCAD borrows its model from Git and GitHub, then changes the parts that don’t fit CAD. Binary files can’t be merged line by line, so only one person edits a branch at a time, and releases are assembled by picking whole files.
Terms
- Project
- A folder of CAD files with its own history. Like a repository in Git. It can be public or private.
- Main
- The official line of a project. It is made of releases only; nobody edits main directly.
- Release
- A numbered, locked version of main: v1, v2, v3. A release can’t be edited or deleted.
- Branch
- A working copy of a project, started from a release. All changes happen on branches.
- Check out, check in
- Checking out a branch gives you the only write access to it. Checking in gives it back.
- Autosave
- A snapshot taken every time you save a file on a checked-out branch. Autosaves are temporary.
- Version
- A named snapshot of a branch, with a message. Committing a version clears the autosaves before it.
- Release request
- A proposal to turn a branch into the next release. You pick, file by file, what ships.
- Release candidate
- The set of files a release request would ship, rebuilt in SolidWorks and waiting for approval.
- Root file
- A file kept at the top of a project, outside branches and releases. It has its own numbered revisions and no check out.
- Item
- The identity of a part that lasts across renames. Replacing a part keeps its item, so its history continues.
How they fit together
A project starts with a first release, v1. To change anything, you start a branch from the latest release and check it out. Every save becomes an autosave; when you reach a point worth keeping, commit a version.
When the branch is ready, open a release request. GigaCAD lists every file that differs from main. For each one, take the branch’s copy or keep main’s. GigaCAD then builds a release candidate, the SolidWorks add-in rebuilds its assemblies, and the project’s approvers sign off. Releasing creates the next locked version of main.
Differences from Git
- There’s no merging inside a file. You choose one side per file.
- Branches are locked to one person at a time instead of being edited in parallel.
- History on main can’t be rewritten. There is no force-push.
- Parts keep their identity when renamed or replaced, so assemblies don’t lose track of them.