Будем рассматривать два случая:
- Проект создали на гитлабе, и хотим скопировать его на комп
- Проект создали на компе, и хотим связать его с репозиторием в гитлабе
В обоих случаях нам нужен репозиторий, будем считать что он у нас есть. Вот мои данные для теста:
Имя проекта: test-repo
Username: ivan_ivanov
Создаем ключ
Чтобы создать токен доступа, переходим в настройки вашего профиля. Для этого жмем на аватар в правом верхнем углу:

Далее выбираем Access -> Personal access tokens:

На открывшейся странице находим кнопку Generate token и выбираем там Legacy token:

Вводим название токена, устанавливаем срок действия, права доступа и жмем Generate token:


Токен готов. Обязательно скопируйте его куда-нибудь, потому что доступа к нему вы больше не получите:

Токен у нас есть, теперь переходим к связке.
Первый случай
Копируем ссылку на репозиторий — https://gitlab.com/ivan_ivanov/test-repo, переходим в терминале в папку с проектом, куда хотим поместить репозиторий и делаем:
git clone https://gitlab.com/ivan_ivanov/test-repo
Далее появится поле ввода Username. Вводим ваш username — ivan_ivanov.
Далее будет запрашиваться пароль. Сюда вставляем именно созданный токен, не пароль от аккаунта.
Готово. В папке проекта должны появиться файлы репозитория.
Второй случай
Если локальный проект еще не связан с репозиторием в гитлабе, но уже готов к отправке, то надо сначала связать его а потом пушить.
Переходим в терминале в папку с проектом, и делаем:
Сначала init:
git init --initial-branch=main
Потом это:
git remote add origin https://gitlab.com/ivan_ivanov/test-repo
И потом это:
git remote set-url origin https://gitlab.com/ivan_ivanov/test-repo
Если ваш репозиторий на гитлабе прям пустой и вы не делали initial commit то дальше можно коммитить локальные файлы и запушить их:
git add .
git commit -m "initial commit"
git push -u origin main
Далее появится поле ввода Username. Вводим ваш username — ivan_ivanov.
Далее будет запрашиваться пароль. Сюда вставляем именно созданный токен, не пароль от аккаунта.
Если репозиторий был пустой и без файлов то на это должно быть все. Если в репозитории есть какие-то файлы, то возможны конфликты (читайте дальше).
Возможные конфликты
Во втором случае после git push -u origin main может появиться ошибка, которая указывает, что в репозитории есть файлы которых нет на компе. Например, Readme или другие:

Эту ошибку можем исправить в зависимости от того нужны ли вам файлы репозитория.
Если не нужны
Если файлы в репозитории не нужны то их можно просто затереть командой:
git push -u origin main --force
Однако в этом случае также может быть ошибка, которая указывает на то что ветка main защищена от принудительного пуша:

Чтобы это исправить надо зайти через браузер в репозиторий проекта, и в левом нижнем меню найти раздел Settings -> Repository:

Далее выбрать раздел Protected Branches:

и включить Allowed to force push:

Теперь заново можно выполнить:
git push -u origin main --force
Понятно, что не рекомендуется пушить в Main и все такое, но тут уже решайте сами насколько для вас это критично.
На этом все. Ваш проект должен загрузиться на гитлаб.
Если файлы нужны
Если файлы в репозитории нужны, то нужно их сначала стянуть в локальную папку и потом запушить обновленный проект:
git pull origin main --allow-unrelated-histories
git push -u origin main
Комментарии 0
Нет комментариев