I would really like to use a different approach than copying the entire baseline for each of our customers
Copying? What do you mean?
If baseline, customer1 and customer2 are different repositories of the same codebase, then just add multiple remotes. For example if you need to work on customer1 code, clone
customer1 and add
baseline as another remote. Then you can just merge changes from
baseline/master into your local product branch, and then push that on
customer1/product1 branch. You may merge that back into
baseline/master if you want to make some changes common to all your customers.
This way you only have one repo locally, sharing all the common references between your similar repositories.
customer1/master, as you may have several products for the same customer, so this won't scale, unless you want to store customizations common to all that customer's products.