Мы используем Git для разработки на ASP.NET благодаря Git Extensions , и у нас есть только две проблемы - кривая обучения с Git и обработка сложных зависимостей между проектами. В противном случае это было абсолютное удовольствие. Git Extensions предоставляет утилиту Git CLI, Windows GUI и интеграцию Visual Studio, и мы используем все три взаимозаменяемо.
Большая сложность Git заключается в том, что он удивительно гибок, и графические интерфейсы не могут этого замаскировать. IMO, даже если вам не нужен администратор репозитория, вам понадобится как минимум один человек в команде, который достаточно заинтересован в изучении концепций Git, чтобы они могли помочь другим с более продвинутыми функциями или при появлении загадочных сообщений.
Наши проблемы управления зависимостями действительно возникают из .NET, а не из Git. Наши приложения имеют общий набор пользовательских сборок, которые зависят друг от друга, и в настоящее время мы используем вложенные подмодули. Git работает правильно, но требует усилий для синхронизации частей. Если бы мы были больше, я бы определенно внедрил здесь систему сборки.
Если у вас большая команда или кодовая база, вам нужно подумать о проблеме интеграции, чтобы вы могли плавно объединить усилия. Способ, которым Git позволяет вам создавать и связывать вместе репозитории по своему желанию, невероятно полезен, равно как и замечательное ветвление и слияние, но эти функции делают еще более важным систематическое управление вашим кодом и процессом сборки.
Ранее мы использовали Subversion с TortoiseSVN и AnkhSVN, и я бы не рекомендовал это делать. Я с удовольствием использовал Subversion на * NIX, но с Visual Studio это было огорчительно. Переименование элементов в VS приводило к частым сбоям, и каждый раз требовалось много времени для исправления. Кроме того, Git делает все быстрее и лучше.