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

1419

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

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

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

  • 4
    Я только добавил Git Source Control Provider для VS 2010, так что он все еще работает.
  • 3
    Оформить этот урок от команды VS. Следующее обновление; Обновление 2 для VS 2012 выйдет в любой день. Вы также можете скачать предварительный просмотр технологии сообщества (CTP) для VS2012 здесь . В качестве альтернативы, если вы работаете в CMMI, Agile, Scrum 1/2 и т. Д., Вы можете подписаться на бесплатную учетную запись (как на общедоступном, так и на частном облачном хранилище) и пригласить участников (товарищей по команде, клиентов) в свой проект TFS tfs.visualstudio на основе веб- интерфейса. ком
Показать ещё 7 комментариев
Теги:
visual-studio

16 ответов

1009
Лучший ответ

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

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

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

  • 1
    Фантастика. Это приложение великолепно ... Я терпеливо использовал командную строку и ждал эквивалент tortoiseSVN, но это лучше.
  • 9
    ted.dennison: Согласно этой странице ( code.google.com/p/gitextensions ) это плагин VS 2005/2008.
Показать ещё 19 комментариев
207

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

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

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

  • 35
    мерзавец должен быть в порядке с VS, делающим переименование. Для правильного отслеживания переименования в git log вам просто нужно быть уверенным, что вы вносите часть «remove» изменения в тот же коммит, что и часть «add». git add -A делает это легко, если ваш .gitignore обновлен.
  • 38
    Я тоже новичок, и, честно говоря, предпочитаю использовать его из командной строки. Я бы немного испугался, чтобы перенести силу мерзавца в графический интерфейс, который пытается быть «умным» и совершать «магию» за моей спиной.
Показать ещё 11 комментариев
88

Git Поставщик контроля источника - это новый плагин, который объединяет Git с Visual Studio.

  • 0
    Есть ли шанс заставить его работать в 2005 году?
  • 3
    Что ж. TBH графический интерфейс этого именно то, что я искал, когда я искал графический интерфейс для git в VS 2010. Спасибо за публикацию этого. Другие ответы не то, что мне нужно. Они бедны по сравнению с VisualSVN.
Показать ещё 1 комментарий
55

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

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

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

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

  • 0
    Именно так. Моя компания использует SourceGear Vault, который имеет интеграцию VS. Но так как он также поддерживает рабочий процесс edit-merge-commit, я никогда (никогда) никогда не использовал интеграцию VS. На самом деле, я думаю, что я удалил этот бит.
  • 22
    Ребята, вы когда-нибудь перемещали или переименовывали файлы / каталоги? Я начал использовать VisualSVN пару месяцев назад, и я никогда не мог вернуться.
Показать ещё 7 комментариев
38

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

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

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

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

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

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

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

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

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

  • 0
    Как насчет того, чтобы сказать Git игнорировать каталоги bin / и obj / внутри проекта? Если, конечно, вы не хотите, чтобы он отслеживал вашу сборку ...: p
  • 0
    Просто любопытно, но почему вы хотите, чтобы он игнорировал ваш файл проекта?
Показать ещё 8 комментариев
31

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

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

  • 0
    Я рекомендую этот, так как это официальный продукт Microsoft. и он может установить на VS 2012 Express и
28

Также не пропустите TortoiseGit... https://tortoisegit.org/

  • 0
    Да, это хороший интерфейс, но нет, он не интегрируется с Visual Studio.
  • 3
    Поставщик контроля исходного кода Git добавляет команды TortoiseGit в контекстное меню в Visual Studio.
27

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

  • 0
    Для Visual Studio 2012 это лучший ответ. Похоже, что они вложили много усилий в реализацию, и, по моему опыту, все работает как положено!
  • 2
    Я не смог выяснить, как настроить «Visual Studio Tools for Git» Microsoft для использования частного репозитория Github. Вы видели какую-либо документацию или руководства по этому вопросу?
Показать ещё 1 комментарий
18

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

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

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

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

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

18

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

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

15

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

15

Самый новый выпуск Git Расширения поддерживает Visual Studio 2010 (наряду с Visual Studio 2008 и Визуальное &nbsp студия;. 2005)

Я нашел, что он довольно прост в использовании с Visual Studio 2008, и интерфейс кажется таким же в Visual Studio 2010.

14

Самое простое решение, которое действительно работает достаточно хорошо, - это добавить команды TortoiseGit в качестве внешних инструментов.

Решение добавить панель инструментов Git (TortoiseGit) в Visual Studio

  • 1
    Вы также можете просто вызвать git прямо из консоли диспетчера пакетов, которая является просто командной строкой powershell. Или ... superuser.com/a/879561/135416
10

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

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

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

10
10

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

  • 0
    Неплохо. Интересно, кто тестирует и одобряет пользовательский интерфейс ... сообщения во всем очень сбивают с толку ... мое единственное предположение, что они поспешили выпустить его и посмотреть, что / почему пользователь жалуется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню