MS Visual Studio + гитолит или github через ssh

У меня есть MSVS 2013 + git 1.8.4 + git -extensions 2.47.3 на локальном компьютере и гитолит 2.3-1 на удаленном сервере

Я мог бы клонировать фиксацию и нажимать мой проект (git @server.example.com: testproject) с помощью консольных инструментов и через git -extension GUI

Но я не мог сделать то же самое из "Team Explorer" в MSVS. Даже если я буду клонировать его вручную (консольным инструментом) и добавить в качестве локального репозитория в MSVS Team Explorer, я не могу зафиксировать или нажать, потому что

Произошла ошибка. Подробное сообщение: ошибка была вызвана libgit2. Category = Net (Ошибка). Этот транспорт не реализован. К сожалению

Все, что я нашел, связано с TFS или локальной интеграцией git.

То же самое с проектом github.

Можно ли даже заставить его работать? С помощью некоторых консольных крючков или что-то в этом роде?

Ответы

Ответ 1

"Team Explorer" использует интеграцию Git, добавленную с Visual Studio 2013.
См. " Клонировать удаленный репозиторий Git из сторонней службы".

С этой встроенной интеграцией Git в Visual Studio поддерживается только https.
Ssh еще не поддерживается.

http://i.msdn.microsoft.com/dynimg/IC698706.png

Это сообщение в блоге MSDN, опубликованное в октябре 2013 года:

На момент написания этой статьи, Visual Studio 2013 не поддерживает удаленные службы на основе ssh.
Если у вас есть удаленный Git, который использует SSH, и вы пытаетесь выполнить сетевую операцию в Visual Studio, вы получите сообщение "This transport isn’t implemented. Sorry." (это сообщение происходит из библиотеки libgit2).
У меня нет временной шкалы, когда в Visual Studio может быть реализована поддержка удаленных устройств SSH.


Обновление к 2015 году:

Однако, как Владимир Колтунов упоминает ниже, начинается запуск libgit2 (Q4 2015) (для VS 2015) с поддержкой ssh ​​в проекте PROGrand/git2-msvstfs-ssh-patch.

Этот патч для 'libgit2' позволяет использовать открытые/закрытые ключи SSH с репозиториями ssh (такими как gitolite) в Visual Studio 2015

Ответ 2

В качестве обходного пути я использую командную строку git (вызывается нажатием Открыть командную строку в раскрывающемся списке Действие в Team Explorer).

Он уже открывается в каталоге git repo, поэтому нажатие (после того, как вы сделали локальные изменения) так же быстро, как вызвать командную строку и выполнить команду git push, не прикладывая усилий при нажатии Синхронизировать.:)

Ответ 4

Я получил это же сообщение, когда у пользователя был свой репозиторий, сопоставленный с сетевым диском, и этот диск не был отображен. Таким образом, единственные доступные транспортные средства (по крайней мере, на VS 2013) - это http и файловая система, но если вы используете файловую систему и диск недоступен, libgit сообщает вам, что он не поддерживает транспорт.