Top 5 questions team leads ask about using Git for hardware

AllSpice screenshot of team design review comments.

Intro to using Git for hardware

In the world of software development, Git has etched its name as the go-to version control system. Git’s advantages to productivity and focus on continuous improvement have helped spawn entire industries. But what about its application in the realm of hardware? You might be surprised to learn that Git’s usefulness extends beyond code files and into the realm of hardware design and development. With its capability to track changes, manage versions, and collaborate on projects, Git is just as pivotal to hardware engineers as it is to their software counterparts. Today, we will be answering the top five frequently asked questions about how Git can be utilized in hardware development, dispelling misconceptions and revealing the true power of this versatile tool. Here are the top 5 questions team leads ask about using Git for hardware.

1. “How can I get the most out of binary files in Git?”

Modern Git has many solutions for binary files.

Many engineers scoff at using Git for managing PCB design projects. The various binary formats of ECAD tools compromise a major advantage of Git: being able to diff files. Even when ECAD tools use a text format, the diffs can be complicated and spread over the files. Another disadvantage is that vanilla Git tracks the changes in a file. Binary ECAD files and text-based ECAD have many changes. When the file sizes increase, the time to sync increases and productivity is lost.

While many of these downsides were true a decade ago, the power of Git has expanded DevOps to hardware development.

  • Visual diff of schematic, PCB, and library components
    • View changes between revisions
    • Add action items, comments, and request changes
  • Web file view for fast, universal access
  • Git Large File System (LFS) for keeping file size and transfer time low

Many skeptical engineers have been convinced with a simple demo of AllSpice.

AllSpice team demo featuring binary files.

2. “How can I make it easy for my team to get started with Git?”

New users can use GUI Git clients to learn the basics of Git in under 10 minutes. It used to be that you needed experience with a command line and memorized dozens of Git commands. Now your whole team, regardless of skill level, can get started quickly with one of these easy-to-use programs:

The stripped-down interface is easy to understand, and the modern UI helps new users focus on what is important rather than a firehose of information.

GitHub Desktop for first-time and team use.

TortoiseGit is a favorite Git client for teams that need to run on Windows systems. Tortoise Git works with the Windows File Explorer to allow users to perform Git operations directly on the file system.

Download TortoiseGit

TortoiseGit, a team favorite git client.

Check out our full list of recommended Git tools and see which one will help the workflow of your team the most!

3. “How many commands do I need to learn Git?”

With Git, simple things are easy and hard things are possible.

1. Git has a reputation for having a high learning curve, but it’s actually possible to use Git with a handful of commands.

git clone.

2. Git checkout allows you to switch between development and release branches like main, R1, V12, dev/fix_inductor_current, etc.

git checkout.

3. Git add allows you to add new files to the repository. Cloning only includes the files that existed the last time someone pushed to that branch. Git add is a simple way of improving your design with new files.

git add.

4. Once you’re satisfied with your changes, you can commit them to your local repository. These changes are not at the remote server yet, but they are tracked.

git commit.

5. Git push will transfer all your collective commits to the remote server and allow people to browse individual commits and changes in those files. There’s a lot more options to Git push, but this simple command will get your files to the server.

git push.

6. Git allows many people to work on a project at the same time. You can fetch a list of changes on the remote server, or you can pull the changes down to your local filesystem.

git fetch and git pull.

7. Check out our full Git command line cheat sheet to learn more commands to help you build powerful workflows. It’s easy to get started!

4. “How do I migrate from SVN to Git?”

Git is a great choice to replace SVN. With many industry leaders deprecating support for SVN and with the added productivity of Git, now is the best time to start your migration.

There are many great guides on the mechanics of a migration, but we have recommendations for best practices.

1. Start simple. Migrate just one repository/design.

  • Much of the process can be automated, but starting with a simple test will help you figure out what is important to focus on.

2. Split migration into workflow epochs

  • Many SVN repos change organization every few years. Simplify your migration by cutting off changes with older organization.

3. Migrate only the last 2-5 years of full SVN History

  • Older designs are not WIP and change granularity is less important
  • Do make sure that you have a way of accessing the old SVN repos. Keeping an old server alive or archiving the repos on a network filesystem will guarantee that any old hardware designs are available.

Every situation is different, so we recommend scheduling a conversation to discuss SVN migration if you need migration guidance.

5. “Why should I use Git over in-person reviews, email, or a simple network file system?”

1. Git has a full revision history.

  • Track changes while you’re designing
  • Onboard new team members with existing history

2. Releases help ensure PCB orders and product assembly and test are always working with the correct hardware and firmware.

  • Send a release directly to a contract manufacturer so they’ll always have the most up-to-date file.

3. Design reviews in Git help you improve yields and cut down on the number of prototypes.

  • Review comments in design review without pouring through email archives.
  • It’s easy to view changes, mark up schematics or pcbs, and have a fluid and dynamic conversation that helps designs meet specs and squash bugs.

4. Issues help capture and execute action items.

  • It’s easy to convert any comment directly into an issue. Milestones and projects are collections of issues and help you track bugs, prioritize changes, and make sure features are designed correctly.
  • It’s easy to view changes, mark up schematics or pcbs, and have a fluid and dynamic conversation that helps designs meet specs and squash bugs.

Have questions about applying Git principles to hardware development for your team? Schedule some time with our Git experts for a 1×1 Q&A session.

Download our free ebook

Scroll to Top