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?
Most teams should have their work reviewed before merging. Each team probably has their own methods for approving work based on the team and company size, and how design works with the rest of the organization, but we suggest that individual communication and a thumbs up from one other person is best when merging into each other's branches, but larger, team-wide reviews occur before the work gets merged into the main branch.
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.