Best Practices

How to organize repositories

The first step to take in organizing repo’s is to formalize your team’s practice around repo naming conventions. Here are our top tips to get you started:
Use dashes and underscores because Git will not allow you to use spaces in naming. Be specific. Be consistent with your naming conventions.
Based on your team’s workflow, there are several options for the organizational structure of your organization’s repositories. You may choose to designate one repo as the “central” repository. Organizational structure could also be based on one repository per machine, per client, or a combination of both. There are different ways to organize your repo’s based on your job function. Our recommendations are as follows:
  • End users - Organize repos per area or per machine
  • Machine builders - Organize repos per machine or per client
  • System Integrators - Organize repos per client or per area. Note that repo names can be changed or edited before handing off to a client.

Collaborate with Copia

Some of the benefits of using Copia for collaboration include:
The ability to invite external users or contractors with read-only seats. Easily transfer repos to clients. Use Copia across different teams and functions as a source of truth for accessing the latest version of a project.

LFS (large file support)

To support larger files and increase efficiency, Copia offers integration with Git LFS. For projects containing large files, the process of cloning can take a significant amount of time. Git LFS is an extension that uses tiny pointer files to reduce the time impact of cloning large files.
With the Git LFS extension running in the background, you won’t notice anything different on the front end and will be able to continue your workflow as normal.
Although Git LFS is important to use for larger and more mature repositories, one limitation is that a file rename will be considered a removal of one file and an addition of a new file in its place. In a repository that is currently using or will be using LFS, try to avoid renaming any file, as its history will be disconnected/divided by the rename whenever it is tracked by Git or Copia.

Managing virtual machines

Copia does support the use of virtual machines with our product. You can either run the Copia desktop app from within the virtual machine or via the host.
One recommendation is to create a shared folder between the virtual machine and the host machine. You can then run Copia on the host machine and monitor the shared folder from as many VMs/IDEs as needed.
This workflow allows the user to make changes on one machine as opposed to switching back and forth between multiple machines.

Formalize team Git practices

It is important to establish or select a specific workflow before starting a project to ensure all team members are aligned on how changes will be applied.
Here are our top tips to streamline your workflow:
  • Make clean, single purpose commits
  • Write meaningful commit messages
  • Check which branch you’re on before committing
  • Commit early and often to increase revert options and clarity on individual change.
For a more detailed look at committing, check out our advanced workflows.


Branching and merging is one of Git’s most complex feature sets, and also one of its most powerful. Depending on your team’s size and structure, there are great resources online detailing a number of different workflows to take advantage of this feature.
The important thing is to have protocols in place and to have your team thoroughly trained on how to use branching. This keeps the process streamlined and allows everyone to keep moving forward. For a detailed look at branching and merging start here.