Я столкнулся с той же проблемой. Я хочу поделиться источником не только между целями, но и между платформами (например, Mono vs. Visual studio. Кажется, что нет никакого способа легко сделать это с помощью только версии, предоставляемой Git для ветвления / тегирования. Потому что в идеале вы Хотелось бы поддерживать общую ветвь кода, а также хосты / целевые ветви и просто объединять общий код с этими ветвями и из них.
Но я не знаю, как это сделать. Может быть, сочетание разветвления и пометки? Кто-нибудь?
Очевидно, что я использовал бы условную компиляцию, если бы это было необходимо, где бы я мог, чтобы был только один исходный файл под управлением версией, но для других вспомогательных файлов, которые должны появляться только в одной ветви хоста / цели, или где содержимое будет совершенно другим, нужен другой механизм. Если вы можете использовать методы ОО, чтобы обойти проблему, то это тоже было бы желательно.
Таким образом, ответ, кажется, вам нужен какой-то механизм управления конфигурацией / сборкой сверху
из мерзавца, чтобы справиться с этим. Но это, кажется, добавляет много сложности, так что, возможно, сбор вишни
слияние в общую ветвь не будет плохим путем. Особенно, если вы используете другие методы, чтобы свести исходные варианты к минимуму. (Может ли пометка помочь автоматизировать это?).