Не используйте только одну ветку на платформу (Windows и Mac).
Вместо этого имейте как минимум три ветви: Generic, Windows и Mac. Универсальная ветвь не имеет системно-зависимого кода, а ветвь платформы не имеет универсального кода, поэтому ни одна из ветвей не будет создаваться сама по себе. Вместо этого разработчик Mac всегда создает одноразовую ветвь, которая представляет собой слияние между generic и mac для сборки.
Затем разработайте и передайте универсальные функции в общую ветвь с соответствующим кодом поддержки платформы в ветвях платформы.
Еще лучше было бы иметь одну кодовую базу, которая будет собираться на обеих платформах системой сборки (переменные make-файла и условная компиляция). Затем разработчик Mac добавит общую функцию и код поддержки платформы для новой функции только для Mac, добавляя нерабочий заглушку для других платформ, и передаст результат разработчикам на других платформах для заполнения заглушек.