Visual Studio Git Источник управления без Git для Windows или расширения Github

В Team Explorer он предлагает мне установить сторонние инструменты git, я не собираюсь использовать командную строку git, а только собственный графический интерфейс Visual Studio для клонирования, вытягивания, фиксации, синхронизации, слияния и, возможно, выпускать тянуть запросы.

Так что мне нужно установить сторонние инструменты командной строки git (или расширение Github)? потому что я уже установил 2.10.1 и ничего не заметил. Что я получу, если я это сделаю, и что я проиграю, если я этого не сделаю, потому что я хочу чистую минимальную установку, и все учебники и документы там предполагают, что я должен их установить.

Ответ 1

Это может быть в соответствии с недавний твит из Эдвард Thomson (также на Переполнение стека):

Я не возражаю против того, что @VisualStudio удаляет libgit2 и перемещается на git, у них есть веские причины, но "он действует по-разному" извините, что он читается как FUD.

Есть веские причины для перехода на git: сохранение libgit2 в VS было кошмаром. (Я знаю, я это делал!)

И зачем платить взломать (или вокруг) libgit2, когда они используют Git для Windows-сопровождающего?

Он говорит здесь о Йоханнесе Шинделине, который получил работу от Microsoft в августе 2015 года, и который выпускает Git для выпусков Windows.

Полностью имеет смысл перемещаться.

Итак, до недавнего времени Visual Studio не использовала сторонний клиент Git, но теперь он это делает, с Visual Studio 15 (как прокомментировал jessehouwing, VS 2015 не поставляется со своим собственным git.exe, вместо этого он использует библиотеку).

Это Visual Studio 15 Preview 5 (не Visual Studio 2015, который является v14.25123.xx)
См. ycombinator.com:

Кажется стыдом, что команда "15" отказалась от libgit2. Учитывая, что у Microsoft есть/являются вкладчиками, и, предположительно, все участники-участники имеют одну и ту же цель (кросс-платформа, четность функции и т.д.), Нужно задаться вопросом, что так плохо с libgit2, она была отброшена в пользу обхода на git.exe?

Отбрасывая libgit2, они освободили некоторую память. Очевидно, что общее использование памяти VS и git, вероятно, увеличивается, но команды VS гибнут до тех пор, пока использование памяти не уменьшится, потому что никто не будет уделять приоритетное внимание созданию 64-разрядного приложения


OP спрашивает:

на самом деле я использую VS "15" Preview 5. Так значит ли это, что мне нужно установить Git для Windows или уже поставляется с VS 15? И если да, то почему это все еще побуждает меня установить его? - Jonney Shih 3 мин назад

jessehouwing ответы:

Очень минимальная версия поставляется с Visual Studio. Но он не добавлен в путь. Поэтому Visual Studio не полагается на вас, устанавливая его.

Он установлен здесь: введите описание изображения здесь

Лучший способ установить клиент Git для собственных выходов командной строки - установить Git для Windows вместе с Visual Studio. Если вы это сделали, вы можете отклонить приглашение от Visual Studio

Лично мне нравится "устанавливать" Git просто распаковывая последний архив, например: PortableGit-2.10.1-64-bit.7z.exe где угодно.

Ответ 2

Нет, вам не нужен сторонний клиент git (для Windows должен быть git). Но некоторые команды недоступны через Visual Studio (пока), например, вы не можете проверить reflog и принудительное нажатие не доступно.

После установки git Для Windows убедитесь, что его путь установки находится в переменной среды PATH и перезапустите Visual Studio после ее установки.

Возможно, Visual Studio не обнаружит его, если ваша версия намного более новая, чем то, что было доступно при отправке версии Visual Studio. В вашем случае убедитесь, что у вас установлено обновление для Visual Studio 2015 Update 3.


Некоторая предыстория:

Visual Studio 2013 и 2015 поставляются с LibGit2 и LibGitSharp. LibGit2 - это библиотека, которая реализует большинство стандартных функций git в кросс-платформенной библиотеке C/С++. LibGitSharp - это управляемая оболочка. Не все команды реализованы непосредственно в LibGit2, но не все LibGit2 отображается непосредственно в LibGitSharp.

Нативная интеграция имеет как преимущества, так и недостатки. Хотя быстрее для некоторых прямых манипуляций с обтеканием git.exe, это также делает управление памятью намного сложнее. Кроме того, любые сбои или утечки памяти в встроенной интеграции замедлят или снимут всю Visual Studio.

Выполняя взаимодействие с git вне процесса, каждая операция выполняется в своем собственном маленьком процессе, и если это произойдет сбой или не освободит память во время выполнения, команда завершится неудачно, но Visual Studio просто увидит что git.exe неожиданно закрывается без сбоя.

Кроме того, принимая зависимость напрямую от git.exe, все, что возможно из командной строки git, относительно легко реализуется в Visual Studio, в то время как в прошлом некоторые функции были недоступны и должны были бы кодироваться в С# или на С++.


Итак, Visual Studio реализует/предоставляет несколько функций git напрямую, но некоторые из них не отображаются. Такие функции, как RefLog, Force Push, Stash, git Flow, Cherry Pick не отображаются, хотя интерфейс Visual Studio на данный момент. Если вы полагаетесь на эти команды, вам понадобится внешний git клиент. Командная строка является наиболее универсальным примером такого клиента, но есть и другие, которые могут помочь вам. GitKraken, SourceTree, Tower и другие приходят на ум.