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 Master?
All branches can merge into one of two places: Master or the branch they branched from. We see Master as a place for finished and approved work, the source of truth for the project. Merging work into Master 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 master.
What kinds of cool stuff can I do with merging?
All kinds of things! Abstract gives you a lot of control while merging by reaching into your Sketch files to merge individual artboards, symbols, and styles inside of those files. 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 teammates 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.