Почему я должен использовать git вместо svn?

Я использую для работы с Visual Studio + С# и раньше использовал svn, но не сейчас, поэтому я хочу снова поместить свой код в исходный элемент управления.

Недавно я услышал о git, и я читал wiki git и this и this, и я прочитал, что нет GUI-клиентов для git, таких как TortoiseSvn, или, по крайней мере, я не нашел.

Мои вопросы:

  • Каковы преимущества git over svn
  • Где я могу найти передние концы, которые легко использовать для git.
  • Есть ли какой-либо плагин (ANKH) для git, работающий с Visual Studio?
  • Где еще можно найти ресурсы для начала с git?

Ответ 1

Здесь мои личные переживания с git vs svn:

  • Git по сравнению с SVN: git отслеживает состояние, историю и целостность исходного дерева. SVN отслеживает состояние.

Особенно при слиянии, git широкое использование хранимой истории (переименований и слияний) подходит для принятия более обоснованных решений, что приводит к меньшему количеству конфликтов.

Наличие полной, криптографически проверяемой цепочки целостности через репозиторий помогает повысить доверие к базовым системам или обнаруживать, когда они терпят неудачу. С другой стороны, сложным может быть создание "чистых" патчей. Имеет правильный рабочий процесс.

Наконец, git работает локально по умолчанию, придавая ему невероятно мощный импульс в отличие от SVN, который должен перейти в центральное репо почти для любой операции.

  • Программное обеспечение: Смотрите этот вопрос, есть несколько автономных графических интерфейсов для работы с репо, браузерами истории и расширениями оболочки.

  • Плагин Studio: GitExtensions имеет плагин Visual Studio 2005 и 2008.

  • Документация: Начните с Git Руководство пользователя. Есть больше ссылок на учебники и книги на git-scm.com.

Ответ 2

Существует соответствующий question инструмент для GIT, похожий на черепаху.

Преимущества GIT по SVN обсуждаются над и более, поэтому это не то, что кто-то должен здесь описать.

А что касается плагина Visual Studio, я не думаю, что это будет или будет достаточно долго. Может быть, я кое-что пропустил здесь.

Попробуйте здесь за хорошее руководство по началу работы с GIT в windows

Что касается моего полностью личного вкуса и взгляда, я продолжаю придерживаться svn, основываясь на моих личных требованиях к тому, что я хочу от своего контроля версий, и я считаю, что svn находится в целом другом уровне поддержки инструментов и сообщества. Также я считаю svn очень зрелым, и это не означает, что GIT не выполняет работу.

Ответ 3

Я не хочу хешировать за и против git vs svn, но вот один простой набор сравнений: - Почему git лучше, чем X.

Некоторые хорошие git Ресурсы:

  • Git Готово. Это своего рода блог с небольшими сообщениями о новизне, промежуточном и расширенном использовании git.
  • Git Магия. Хороший пробег в том, что вы можете сделать.
  • Скринкасты GitCasts - ничего похожего на то, чтобы видеть это в действии, чтобы помочь вам понять его силу. Включая полезный Git В Windows screencast.

Удачи!

Ответ 4

TortoiseGit доступен - просто Google он (я не могу вспомнить URL-адрес) И:

  • Распространяясь, вам не нужно постоянно подключаться к серверу, просто работайте локально и push, когда вам нужно.

  • Это очень быстро и не использует большую пропускную способность

  • И, классик, если он достаточно хорош для Линуса, он вам достаточно подходит:)

Обновление: Ссылка на TortoiseGit

Ответ 5

Я не использовал git, но я использовал svn и bazaar (что аналогично в философии для git), поэтому я могу ответить вам в общих чертах.

Преимущество так называемых распределенных систем управления версиями (DVCS) заключается в том, что репо и код вместе находятся на вашем компьютере, и вы не зависите от удаленного репо для операций. У каждого разработчика есть "филиал", его собственная копия репо, к которой он обязуется. Вы можете совершать, возвращать, проверять предыдущие версии, не подключаясь к сети. Официальность хранилища предоставляется в силу человеческого соглашения, а не технической установки. В svn у вас есть только одно репо, которое _the_repo_ вы и все остальные люди обязуетесь. В DVCS вы передаете свой собственный репо и еще один разработчик на свое собственное репо, и каждый из вас может подтолкнуть его изменения к официально разработанному репо, когда ему это нравится.

Другим явным преимуществом является то, что операции в DVCS бывают быстрыми, быстрыми. svn становится невероятно медленным, когда вы начинаете иметь много вещей в своем репо. Это может стать очень раздражающим.

На минусовой стороне DVCS сложнее в использовании, но вы можете использовать DVCS в качестве централизованного VCS, если хотите.

Ответ 6

Я не уверен, что на этом этапе существует стабильность TortoiseGIT, и когда вы говорите о чем-то, что тесно связано с Explorer, это важное соображение. Кто-нибудь может с этим поговорить?

Также имейте в виду, что git - не единственный выбор, если вы ищете преимущества распределенного VCS. git имеет двойные достоинства быть очень мощным, а также очень сложным. Вы можете найти другой DVCS, такой как Bazaar или Mercurial более простой переход к использованию преимуществ распределенной системы. Оба имеют tortoise интерфейсы в разработке, но снова, Я не уверен в их стабильности. (Базар включен в их пакет окон, так что вы бы предположили, что он находится на достаточно хорошей стадии.)

Быстрый поиск также появился VisualHg и Bzr-VisualStudio, хотя я не имею представления о их готовности к употреблению в гневе. Предостережение emptor.

Ответ 7

В чем преимущества git над svn

Прежде чем принимать решение о том, следует ли использовать git или SVN, убедитесь, что вы полностью понимаете свои требования и понимаете, что git и SVN предоставляют и поддерживают. К сожалению, существует много несправедливого предвзятого отношения к git и теме SVN, поскольку я недавно обнаружил в http://svnvsgit.com/.

Позвольте мне привести одного из ответчиков здесь (@Konstantinos):

Преимущества git по SVN обсуждаются снова и снова, поэтому он не кое-что должно быть описано здесь

Этот вопрос задавали почти 7 лет назад. Но тема по-прежнему слишком горячая или теплая. Я недавно наткнулся на http://svnvsgit.com, и мне было немного сложно узнать, что действительно большинство сравнений git и SVN и тесты в Интернете основаны на какой-то странной информации, такой как версия репозитория Mozilla, которая очень велика в SVN. Это просто неверно, и большинство пунктов, описанных в http://git.or.cz/gitwiki/GitSvnComparsion, являются несправедливыми или неправильными.

Или вот цитата @DavidSchmitt (один из ответчиков):

Git по сравнению с SVN: git отслеживает состояние, историю и целостность источника дерево. SVN отслеживает состояние.

SVN и git обеспечивают целостность данных (SVN значительно улучшает IMO). И история треков, и состояние.

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

Выберите разумно!

Ответ 8

Git теперь является отраслевым стандартом для контроля версий, заменяя SVN и CVS и т.д. Git с точки зрения пользователя дает больше возможностей и помогает управлять изменениями кода лучше, чем SVN. Кроме того, проще создавать репозитории благодаря таким сайтам, как GitHub и BitBucket, а не на вашем собственном сервере.

Git легко запускается в командной строке (гораздо больше команд helfpul, чем SVN). Там также ряд полезных графических программ, которые помогают обеспечить приятный интерфейс для вашего репозитория Git рабочего стола GitHub и SourceTree, чтобы назвать пару.

Ответ 9

Как отмечали другие, git быстрее и стабильнее. Он распределен против централизованного, в svn, если вы испортите центральный репо, вы потеряете все. По моему опыту возникают проблемы при объединении кода с git.

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