My company has a piece of software we sell to multiple customers. But every customer have some different requirements (more than just \"Put our logo here\"). The core i
I think a simple and viable solution might be to have develop and release branches for every customer.
Edit: previously develop was called master in the sentence before, but I like develop better
develop branchdevelop and release branchesYou would have to take extra care to make changes that affect all customers in the shared develop and changes that only affect specific customers only on their respective branches.
You develop feature A for customer A, and feature B for customer B.
If those features do not share code they should be kept in the respective develop-* branches, e.g. feature A will be developed in develop-customer-A and feature B in develop-customer-B
If those features share code the shared part should be developed on the shared develop and the parts specific to the customers in their respective branches develop-*