Использование Git с Visual Studio

Как давний пользователь Visual SourceSafe (и ненавистник) я обсуждал переход на SVN с коллегой; вместо этого он предложил использовать Git. Поскольку, по-видимому, его можно использовать как одноранговый без центрального сервера (мы являемся командой из 3 разработчиков).

Я не смог найти ничего об инструментах, которые интегрируют Git с Visual Studio, хотя - такая вещь существует?

Какие технологии доступны для использования Git с Visual Studio? И что мне нужно знать о том, как они отличаются, прежде чем я начну?

Ответ 1

В январе 2013 года Microsoft объявила, что они добавляют полную поддержку Git во все свои продукты ALM. Они опубликовали плагин для Visual Studio 2012, который добавляет интеграцию управления версиями Git.

В качестве альтернативы существует проект под названием Git Расширения, который включает надстройки для Visual Studio 2005, 2008, 2010 и 2012, как так же как и интеграция с Windows Explorer. Он регулярно обновлялся и, используя его в нескольких проектах, нашел его очень полезным.

Другим вариантом является Git поставщик контроля источника.

Ответ 2

Я использую Git с Visual Studio для моего порта протокольных буферов на С#. Я не использую GUI - я просто держу открытую командную строку, а также Visual Studio.

По большей части это прекрасно - единственная проблема заключается в том, когда вы хотите переименовать файл. И Git, и Visual Studio предпочли бы, чтобы они переименовали его. Я думаю, что переименование его в Visual Studio - это путь к успеху - просто будьте осторожны, что вы делаете на стороне Git. Хотя в прошлом это было немного больно, я слышал, что на стороне Git она должна быть довольно бесшовной, так как она может заметить, что содержимое будет в основном тем же. (Не совсем то же самое, обычно - вы обычно переименовываете файл при переименовании класса IME.)

Но в принципе - да, он отлично работает. Я новичок Git, но я могу заставить его сделать все, в чем я нуждаюсь. Убедитесь, что у вас есть файл Git ignore для bin и obj и *.user.

Ответ 4

Я изучил это немного на работе (оба с Subversion и Git). Visual Studio на самом деле имеет API интеграции управления версиями, позволяющий интегрировать сторонние решения управления версиями в Visual Studio. Однако большинство людей не беспокоятся об этом по нескольким причинам.

Во-первых, API в значительной степени предполагает, что вы используете рабочий процесс с заблокированной проверкой. В нем много крючков, которые либо дороги дорого реализуются, либо просто плоские, не имеют смысла, когда вы используете более современный рабочий процесс редактирования-слияния.

Второй (что связано) заключается в том, что, когда вы используете рабочий процесс edit-merge, который поддерживает Subversion и Git, вам не нужна интеграция Visual Studio. Основная проблема, связанная с интеграцией SourceSafe с Visual Studio, заключается в том, что вы (и редактор) можете сразу сказать, какие файлы у вас есть, которые необходимо проверить, прежде чем вы сможете редактировать, и которые вы не можете проверить, даже если хотите. Затем он может помочь вам выполнить любые ревизии voodoo, которые необходимо выполнить, когда вы хотите отредактировать файл. Ничто из этого не является частью типичного рабочего процесса Git.

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

Ответ 5

Я нахожу, что Git, работая над целыми деревьями, как он это делает, меньше выгоды от интеграции IDE, чем инструменты управления версиями, которые либо основаны на файлах, либо следуют шаблону checkout-edit-commit. Конечно, есть примеры, когда может быть приятно нажать на кнопку, чтобы пройти некоторую проверку истории, но я не очень скучаю.

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

*.vcproj.*.user
*.ncb
*.aps
*.suo

но это сильно связано с С++ с минимальным использованием или без использования каких-либо функциональных возможностей класса класса.

Мой шаблон использования выглядит примерно следующим образом.

  • Код, код, код в Visual Studio.

  • Когда вы счастливы (разумная промежуточная точка для совершения кода, переключитесь на Git, сценируйте изменения и просмотрите diffs. Если что-то явно неверно, вернитесь к Visual Studio и исправьте, иначе commit.

Любая слияния, ветки, переадресации или другие причудливые материалы SCM легко сделать в Git из командной строки. Visual Studio, как правило, доволен тем, что меняется под ним, хотя иногда бывает необходимо перезагрузить некоторые проекты, если вы значительно изменили файлы проекта.

Я считаю, что полезность Git перевешивает любые незначительные неудобства в отсутствии полной интеграции IDE, но в какой-то степени это дело вкуса.

Ответ 6

Недавно Microsoft анонсировала Git для Visual Studio 2012 (обновление 2). Я еще не играл с ним, но это видео выглядит многообещающим.

Вот быстрый учебник о том, как использовать Git из Visual Studio 2012.

Ответ 8

Здесь Visual Studio Tools для Git от Microsoft. Он поддерживает только Visual Studio 2012 (обновление 2).

Ответ 9

Visual Studio 2013 изначально поддерживает Git.

См. официальное объявление .

Ответ 10

Поддержка Git, выполняемая Microsoft в Visual Studio, достаточно хороша для базовой работы (commit/fetch/merge и push). Мой совет - просто избежать этого...

Мне очень нравится GitExtensions (или меньше SourceTree). Потому что видеть DAG для меня очень важно понять, как работает Git. И вы гораздо более осведомлены о том, что сделали другие участники вашего проекта!

В Visual Studio вы не можете быстро увидеть разницу между файлами или зафиксировать, а также (добавить в индекс) и зафиксировать только часть изменений. Просмотр вашей истории тоже не хорош... Все, что заканчивается болезненным опытом!

И, например, GitExtensions поставляется с интересными плагинами: background fetch, GitFlow,... и теперь непрерывная интеграция!

Для пользователей Visual Studio 2015, Git формируется, если вы устанавливаете расширение GitHub. Но внешний инструмент по-прежнему лучше, -)

Ответ 12

TortoiseGit созрел, и я рекомендую его, особенно если вы использовали TortoiseSVN.

Ответ 14

Как сказал Джон Риммер, вы можете использовать GitExtensions. GitExtensions работает в Visual Studio 2005 и Visual Studio 2008, он также работает в Visual Studio 2010, если вы вручную копируете и настраиваете файл .Addin.

Ответ 16

В настоящее время существует 2 опции для Git Source Control в Visual Studio (2010 и 12):

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

Примечание. Какое бы расширение вы ни использовали, убедитесь, что вы включили его из Tools -> Options -> Source control -> Plugin Selection, чтобы он работал.