Избавляться от чертовщины в голове сложно, но необходимо.

Меню навигации для мобильных

Как подключить Gitlab в Visual Studio Code. Инструкция Ubuntu.

Автор Shaman, 06 Фев., 2025, 01:12

« предыдущая - следующая »

Shaman

Поскольку не нашел последовательной инструкции на русском языке пишу свою.
Инструкция актуальна на момент создания поста и через продолжительное время могут перестать работать как отдельные её пункты, так и вся в целом.
Инструкция составлена на основе этих мануалов:
тыц, тыц
Поехали.
Первичные вводные:
Установлен и настроен Visual Studio Code, а также создан аккаунт на GitLab.

1. Устанавливаем систему контроля версий локально, командой:
Код: text
sudo apt install git

2. Создаём ключ для подключения по ssh:
Код: text
ssh-keygen -t rsa -b 2048
В каталоге ~/.ssh появятся 2 файла id_rsa и id_rsa.pub Если вы собираетесь оставить ключи в этом каталоге необходимо переименовать их дабы не перезатереть при создании новых ключей, пусть это будут имена git и git.pub.
Файл git не показываем никому т.к. в нём хранится приватный ключ, а файл git.pub мы потом скопируем в аккаунт на GitLab.

3. В файл ~/.ssh/known_hosts прописываем строчки
Код: text
gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=
Если его нет - создаём.
Этот пункт не обязателен, но желателен т.к. позволяет увидеть какие строчки отвечают за аутентификацию и при проблеме с оной удалить их без удаления known_hosts целиком.
Строчки взяты здесь и если текущие не подошли можно взять новые.

4. В файл /etc/ssh/ssh_config (для редактирования требуется root) вставляем строки:
Код: text
Host gitlab.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/git
Где git имя вашего файла с приватным ключом. Это необходимо для того чтобы данный ключ использовался только для подключения к GitLab.

5. Делаем базовую настройку git:
Прописываем имя пользователя и имейл, которыми будут подписываться коммиты
Код: text
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
выбираем редактор по умолчанию
Код: text
git config --global core.editor nano
выбираем имя главной ветки по умолчанию
Код: text
git config --global init.defaultBranch main
Если вам необходимо, в одном репозитории изменить эти данные, то нужно выполнить эти команды внутри репозитория без параметра --global.

6. Далее идем на сайт GitLab, в настройки вашего аккаунта и ищем пункт SSH keys
На текущей версии это выглядит так:
01.png
02.png
[свернуть]
Нажимаем Add new key
03.png
В поле Key вставляем содержимое файла git.pub. Если скопировали правильно поле Title заполнится автоматически, но вы можете изменить его по своему усмотрению. Для постоянных ключей поле Expiration date нужно очистить, для временных выставить необходимую дату и нажать Add key.
04.png

7. Проверяем подключение к GitLab
Код: text
ssh -T git@gitlab.com
Если все предыдущее пункты были выполнены правильно по получим вывод:
Код: text
Welcome to GitLab, @(имя аккаунта)!
Если нет то проверяем командой
Код: text
ssh -Tvvv git@gitlab.com
и смотрим где споткнулись



Пункты с 8 по 11 можно делать каждый раз, а можно сделать предварительно и потом просто копировать как шаблон.


8. Создаем каталог проекта и переходим в него. Если он создаётся как шаблон, то можно добавить следующие подкаталоги:

Sample
|
|__Datasheet
|
|__Manual
|
|__Shematic & Boardview
|
|__Source


9. Создаём локальный репозиторий git
Код: text
gut init

10. В появившемся файле .git/info/exclude Прописываем исключения, которые не будут попадать в git
Мой файл такой
# Node artifact files
node_modules/
dist/
# Compiled Java class files
*.class
# Log files
*.log
# Package files
*.jar
# Backup files
*.bak
*-backups/
# Maven
target/
dist/
# IDE
.idea/
.vscode/
.pio/
# Unit test reports
TEST*.xml
# Generated by MacOS
.DS_Store
# Generated by Windows
Thumbs.db
# Applications
*.app
*.exe
*.war
# Large media files
*.mp4
*.tiff
*.avi
*.flv
*.mov
*.wmv
[свернуть]

11. Копируем шаблон проекта в рабочий каталог и переименовываем по вашему вкусу корневой каталог проекта, у меня это будет TEST. Именем корневого каталога по умолчанию будет назван проект на GitLab.
Сейчас список каталогов выглядит так

TEST
|
|__Datasheet
|
|__Manual
|
|__Shematic & Boardview
|
|__Source
|
|__.git



Открываем Visual Studio Code и дальнейшие действия будем проводить в нём.


11. Переходим в расширения
05.png
Ищем и устанавливаем GitLab Extension Pack.
06.png

12.
Далее нужно залогиниться на Gitlab через Visual Studio Code.
а. В левом нижнем углу кликаем по надписи No GitLab Account.
07.png

b. Наверху, посередине окна, появится выпадающее меню в коем необходимо выбрать строчку https://gitlab.com
08.png

c. Следующее меню предлагает 2 варианта аутентификации:
По паролю, пункт OAuth.
По токену, пункт Personal Access Token.
Я предпочитаю второй вариант, т.к. если пропадёт доступ к ПК то авторизацию можно прекратить с сайта.
09.png

d. Если у вас уже есть токен, то кликаем по надписи Enter an existing token и переходим к пункту g.
Если нет, то ваш выбор надпись Create a token first. Кликнув по которой попадаем на страницу где нам предложат его создать.
10.png

e. Здесь в поле Token name задаём нужное вам имя токена. Поле Expiration date можно оставить пустым тогда автоматом встанет максимальное время жизни токена (11 месяцев). Галочками выбираем разрешения, для базовых функций хватит указанных на скриншоте, остальные на ваше усмотрение. Выбираем сразу, изменить после их будет нельзя, только создавать новый токен. Кликаем по кнопке Create personal access token и переходим к следующему пункту.
11.png

f. Токен создан, копируем его и возвращаемся в Visual Studio Code. Окно можно закрыть.
ВНИМАНИЕ!!! это единственный момент когда вы сможете его посмотреть и скопировать.
12.png

g. Вставляем токен и нажимаем ввод.
13.png
[свернуть]
Как удалить аккаунт GitLab из Visual Studio Code
Процедура нужна если срок токена вышел, или вы хотите выйти из аккаунта GitLab, да выход только по удалению аккаунта, все настройки сохраняются.

а. Идем в меню Вид/Палитра команд
27.png

b. В выпадающем меню пишем: GitLab:Remove Account from VS Code, выбираем этот пункт и нажимаем Ввод.
28.png
[свернуть]


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


13. Открываем ранее подготовленный шаблон проекта. Для этого необходимо нажать на значок проводника (по умолчанию он расположен по меню файл) и выбрать пункт Открыть папку.
14.png

Если для каталога проекта вам необходимо использовать не корневой каталог, а вложенный (например вы используете PlatformIO), то открываем именно его. Программа найдёт репозиторий в корневом каталоге и выдаст запрос на использование.

Лирическое отступление касательно PlatformIO
У PlatformIO есть одна неприятная особенность, эта среда автоматически создаёт файл .gitignore в своём каталоге и на момент написания статьи не инвазивного средства отключить эту функцию нет. Запрос разработчикам создан ещё в феврале 22-го. На данный момент проблема решается удалением или переименованием файла .gitignore.tpl Сделать это можно командой:
Код: text
mv ~/.platformio/penv/lib/python3.10/site-packages/platformio/project/integration/tpls/vscode/.gitignore.tpl ~/.platformio/penv/lib/python3.10/site-packages/platformio/project/integration/tpls/vscode/.gitignore.tpl.back
Только в пути нужно прописать версию вашего python или пройти по этому пути в ручную.
[свернуть]
15.png
Затем спросит какой из найденных открыть, выбираем наш.
16.png
Локальный гит репозиторий подключен.

14.
Для начала отслеживания необходимо добавить файлы в репозиторий.
a. Для этого нажимаем на значок Система управления версиями
17.png
b. В поле Cообщение прописываем удобочитаемый комментарий. Обычно кратко описывают произведённые изменения (очень катко, буквально 2-3 слова), но поскольку это первое добавление Можно просто написать Первый коммит. Затем нажимаем на кнопку Фиксация.
18.png
c. соглашаемся.
19.png
[свернуть]
15.
Для выгрузки/создания репозитория на GitLab нам необходимо ...
a. Нажать кнопку Опубликовать Branch
20.png
b. В выпадающем меню выбирать Опубликовать в GitLab
21.png
c. Затем наш аккаунт
22.png
d. Тип репозитория и способ загрузки. В моём примере Тип-приватный, способ-SSH. Также можно задать имя, как уже говорилось ранее по умолчанию это имя корневого каталога.
23.png
По нажатию справа, снизу появится сообщение о загрузке
29.png
e. Поcле успешной загрузки, программа предложи перейти на GitLab. Переходим и видим наш репозиторий.
24.png 25.png
[свернуть]

16.
Для клонирования репозитория на другом ПК
a. На сайте выбрать нужный репозиторий, нажать Code и нажать подходящую строку Visual Studio Clone... (в нашем случае Visual Studio Clone (SSH)).
26.png
b. Программа Visual Studio Code автоматически запустится и предложит выбрать место сохранения после чего в правом нижнем углу появится сообщение о загрузке по завершении которой репозитарий откроется.
30.png
[свернуть]

На этом всё, дальнейшая работа с репозиторием это тема отдельной статьи и здесь рассматриваться не будет. Благодарю за внимание.


zenon

Ничего так ты простыню накатал!
А не пробовал к VsCode прикручивать ардуино, точнее так, - попытки делал и с PiO и с VsCode, главная заковырка - stm32 и библиотеки Roger Clark`а, плюс DapLink/JLink, и где-то постоянно отваливалось у меня... :)

Shaman

Через PIO шил только ESP32, через гайверовскую библиотеку. Но у него ini файл настроен хорошо и достаточно только GIT скачать и всё работает. AVR-ки только 328-ю код компилировал и то без PIO на чистом Си для бесконечного проекта вело фонаря )). И через PIO еще МАРЛИН собирал для этой платы.

А простыни писать я люблю,  :)) 
Во-первых, пока пишешь можешь сам же себе ответить на вопрос, а во-вторых хорошо закрепляет пройдённый материал и работает как шпаргалка когда возвращаешься к этому спустя время. Много раз выручало.

Мастер

Ежели один человек сделал чего, другой завсегда разобрать сможет