Подтвердить что ты не робот

Если Git Repo находится на уровне решения или уровне проекта в Visual Studio

Если у меня есть решение С# с несколькими проектами в нем, было бы лучше, чтобы иметь репозиторий Git, созданный в папке решения, или в каждой отдельной папке проекта? Проекты будут работать над несколькими разработчиками. Каковы ваши впечатления от этого?

4b9b3361

Ответ 1

Я использую несколько (иногда чрезмерно притирочных) решений, содержащих набор связанных независимых приложений и разделяемых библиотек. Как уже упоминалось, вы действительно не хотите иметь единственный репозиторий Git, содержащий источник для нескольких независимых проектов, поскольку слишком сложно отслеживать отдельные изменения.

Итак, если ваше решение структурировано как мое, тогда вам обязательно понадобятся отдельные репозитории Git для каждого проекта. Это хорошо работает для меня в течение десяти-двенадцати приложений и не создает столько служебных расходов, как вы думаете.

Если ваше решение поистине монолитно (и вы уверены, что хотите этого навсегда и всегда), то, вероятно, имеет смысл иметь только один репозиторий.

Ответ 2

Я предполагаю, что ваше решение представляет собой своего рода продукт, в то время как проекты являются лишь частью продукта.

В этой ситуации я бы создал репозиторий на уровне решения. Таким образом, намного проще собрать весь продукт сразу, особенно если проекты зависят друг от друга.

Ответ 3

git, возможно, стоит рассмотреть подмодуль. Каждый проект получает свое собственное репо, решение получает репо, а проекты - подмодули.

Ответ 4

Это зависит. Репозитории git наиболее подходят для хранения одного элемента конфигурации с собственным независимым жизненным циклом. Если ваши проекты имеют собственный цикл выпуска и разделяются между несколькими решениями, тогда имеет смысл иметь их в своих репозиториях. Обычно это решение представляет собой элемент конфигурации со всеми составными проектами, входящими в одну и ту же сборку. В этом случае единственный репозиторий git на уровне решения имеет смысл.

Ответ 5

Некоторые, хотя и 3 решения по этому вопросу можно прочитать в этом блоге: http://blogs.atlassian.com/2014/04/git-project-dependencies/

  • средство управления пакетами, то есть nuget в VS, поэтому, используя ссылку на пакет/скомпилированный модуль
  • git подмодуль (только с командной строкой в ​​VS?)
  • другие инструменты зависимостей сборки и кросс-стека

Другое решение - просто добавить проект из другого репо и вывести его из текущего репо, а затем использовать Team Explorer для фиксации изменений.