tech-tips/Программное обеспечение/Версионирование кода/git/Pull из Gitlab через https при включенной 2ФА.md

42 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
tags: ["git", "git-rebase"]
---
## Исходные данные
В корпоративном #Gitlab есть репозиторий.
В настройках аккаунта включена 2-факторная аутентификация.
`origin` локального репозитория задан через `https://`.
Нужно вытянуть свежие изменения из `origin` в локальный реп.
## Ситуация
При выполнении `git pull` после ввода логина и пароля возникает ошибка:
```
Username for '<https://git.example.com>': %логин%
Password for '<https://user@git.example.com>': %пароль%
remote: HTTP Basic: Access denied
remote: You must use a personal access token with 'read_repository' or 'write_repository' scope for Git over HTTP.
remote: You can generate one at <https://git.example.com/profile/personal_access_tokens>
fatal: Authentication failed for '<https://git.example.com/%репозиторий%>'
```
## Причина
При включенной #2FA нельзя напрямую использовать пароль, вместо этого придуманы личные токены доступа (Personal access tokens), все манипуляции должны происходить с его помощью.
## Решение
1. Создать токен, выставить права `read_repository` и/или `write_repository`
2. Для аутентификации нужно вместо пароля вводить этот токен как он есть:
```
Username for '<https://git.example.com>': user
Password for '<https://user@git.example.com>': %токен%
...
```