Version control for KiCad projects
KiCad 6+ files are plain text, so git works. Here is a setup that stays clean, where git falls short for hardware review, and how BoardRepo fits in.
Commit these
The project file (.kicad_pro), schematics (.kicad_sch), the board (.kicad_pcb), project-local symbol and footprint libraries, sym-lib-table and fp-lib-table, and any 3D models the board references. That set reopens identically on another machine.
Usually ignore these
# Locks and rebuildable local cache fp-info-cache ~*.lck
Keep KiCad autosaves and backup copies by default: they can contain recovery work that is missing from the main files. BoardRepo for KiCad honors the project's .gitignore, so an ignored file will not reach Git or BoardRepo. Keep Gerbers, fabrication outputs, and backup ZIPs too unless your team deliberately decides those exact files are disposable.
Where git falls short for hardware
A schematic change shows up as an s-expression diff: coordinates, UUIDs, and reordered blocks. A one-resistor change can touch hundreds of lines, and a reviewer cannot tell a cosmetic move from a netlist change. Teams work around it with screenshot swaps or CI render pipelines such as KiBot, which help but need setup and maintenance per repo.
What BoardRepo adds
BoardRepo keeps a linear version history per project. Each upload or import becomes a version with its own file manifest, and every file is retrievable per version. The current version renders as schematic and PCB views with a generated BOM and gerbers, so reviewing a board means looking at the board, not at text.
Git stays the collaboration tool for source; BoardRepo tracks board revisions as rendered, reviewable states. Any two published versions can be compared visually, with the changed parts, routing and outline highlighted on the schematic and PCB and listed by name, which is the review the s-expression diff above cannot give you. With the GitHub App installed, every merge to your default branch becomes the next version, so the repo and the board history stay in step without a second workflow.
Upload a board or read BoardRepo vs GitHub for KiCad. The tool-agnostic version of this page is version control for PCB designs.