Branches help you and your team keep your files and edits organized into distinct and separate lines of work. Merging allows you to bring those edits together into one place once the work is finished. In our discussions with teams before building Abstract, everyone was merging files together, but they were doing it manually by copy-and-pasting between files. The work was so sizable on some teams that there was a team member whose sole job was to be the maintainer of the design system. Abstract helps automate this laborious task and gives powerful tools to offer fine control over the process. Branching and merging are the main ways to keep all the work in its right place.
What about the main branch?
All branches can merge into one of two places: the main branch or the branch they branched from. We see the main branch as a place for finished and approved work, the source of truth for the project. Merging work into the main branch signals that it's been approved and ready to be used and implemented by the rest of the team.
How should teams arrange the merging process?
We suggest teams undergo a review of their work prior to merging. Each team may have its own unique methods for approving work, depending on factors such as team or company size and how design integrates with the broader organization. However, when it comes to merging into each other's branches, individual communication and the endorsement of at least one other team member have proven to be the most effective. When it comes to merging work into the main branch, we recommend that comprehensive team-wide reviews happen first.
What kinds of cool stuff can I do with merging?
All kinds of things! Most of the designers we've talked with were already doing this merging by hand, and found the process difficult because they had to remember which elements were edited. Abstract tracks all your edits to automate the merging process.
Merging opens up exciting new ways to collaborate with your teammates. For instance, you could create a branch to revise a type hierarchy, while your teammate branches off of you to work on the project's color palette. Once they finish their work and merge into your branch, you would then have files which contain your type choices and their colors.
Read more: We've written some best practices on merging so that you can get the most out of collaborating on designs in Abstract.