Открытая среда разработки Visual Studio Code теперь позволяет работать с удаленными репозиториями GitHub напрямую. Для этого появилось специальное расширение Remote Repositories.
Зачем это нужно
В VS Code изначально интегрировали поддержку системы контроля версий Git. Работать с системами других форматов можно через расширения. Чтобы внести изменения в проект в VS Code, нужно склонировать его на компьютер, отредактировать файлы и создать коммит (для Git) или список изменений (для Perforce и др.).
С Remote Repositories работать с удаленными репозиториями будет быстрее и безопаснее, утверждают разработчики расширения. Клонировать репозиторий с удаленного сервера к себе на локальную машину не нужно. Просматривать, искать, редактировать и вносить изменения в любой удаленный репозитории GitHub можно будет прямо из VS Code.
Расширение Remote Repositories позволяет взаимодействовать с любым количеством репозиториев. Это экономит пространство на диске. Возможности переключения между ветками и управление версиями остаются прежними.
Как работать с удаленными репозиториями
Установить Remote Repositories можно из списка расширений:
В левом нижнем углу среды разработки VS Code появится новый зеленый индикатор с двумя угловыми скобками.
Чтобы получить доступ к удаленным репозиториям GitHub, нужно авторизоваться на платформе. После этого в строку поиска будет добавлена функция открытия удаленных репозиториев.
Дальнейшая работа практически не отличается от привычного взаимодействия с локальными (склонированными) репозиториями. Можно вносить изменения, создавать новые ветки, искать файлы и фрагменты кода, отслеживать различные редакции файлов в таймлайнах.
Открывая удаленный репозиторий, всегда загружается его новейшая версию. Но если в процессе работы кто-то из коллег внес в него изменения, остальные увидят в нижней строке количество коммитов, на которое отстают – их можно загрузить (git pull), нажав на это число.
Когда же создается коммит в удаленный репозиторий, то не нужно делать git push. Готовый коммит будет отправлен на GitHub автоматически.
Работать с пулл-реквестами в виртуальной среде удобнее через привычное расширение GitHub Pull Requests and Issues. Оно позволяет сделать код-ревью и исправить проблемы – но без клонирования репозиториев.
Еще один момент: если сделать изменения в одной ветке, а затем переключиться на другую, то не нужно выбирать файлы и отправлять их в стеш для временного хранения текущей редакции. Это тоже происходит автоматически.
Что такое виртуальное рабочее пространство
Remote Repositories создает виртуальное рабочее пространство. Вы взаимодействуете с кодом через виртуальную файловую систему – абстракции файлов, которые физически существуют на диске. Но в реальности они никуда не копируются и полноценно не индексируются.
Фактически виртуальное рабочее пространство – это особый формат, в котором некоторые функции отключены, а возможности ограничены. Например, в нем отключена часть расширений. Увидеть их можно, если ввести в строке поиска @workspaceUnsupported.
Но эти расширения можно включить вручную, если добавить в файл настроек settings.json строку:
"extensions.supportVirtualWorkspaces": { "<extensionID>": true }
Вместо extensionID нужно подставить идентификатор расширения. Но из-за ограничений виртуальной среды не все возможности могут стать доступны.
Ограничения Remote Repositories
Пока расширение работает только с GitHub. В будущем также планируется добавить поддержку Azure Repos, но насчет других систем контроля версий пока информации нет.
Кроме того, из-за ограничений виртуальной среды Remote Repositories не поддерживает терминалы, задачи и традиционную отладку. Возможности умного дополнения кода IntelliSense и навигации Go to Definition также доступны не в полном объеме.
Возможны проблемы с поиском, так как у GitHub есть ограничения индексации ветвей. Кроме того, все функции, которые изначально ориентированы на взаимодействие с локальными ресурсами, могут работать нестабильно.