Опишу, как это сделать на Маке и Линуксе. Про Винду даже не спрашивайте, уже лет 7 как не помню.
Для работы с двумя аккаунтами GitLab с одной машины требуется настроить Git для использования разных SSH-ключей. Каждому аккаунту будет соответствовать свой ключ.
1: Создание отдельных SSH-ключей
Для каждого аккаунта GitLab необходим уникальный SSH-ключ. Если стандартный ключ (`~/.ssh/id_rsa`) уже существует, его можно оставить для первого аккаунта. Для второго аккаунта создаётся новый.
В терминале выполняется команда для генерации нового ключа. В ней `"email_второго_аккаунта@example.com"` заменяется на почту, привязанную ко второму аккаунту GitLab. При запросе имени файла нужно указать уникальное имя, чтобы не перезаписать существующие ключи.
# Имя id_gitlab_work можно заменить на любое другое
ssh-keygen -t ed25519 -C "email_второго_аккаунта@example.com" -f ~/.ssh/id_gitlab_work
В результате у нас будет две пары ключей:
	- `~/.ssh/id_rsa` и `id_rsa.pub` (для первого аккаунта)
 
- `~/.ssh/id_gitlab_work` и `id_gitlab_work.pub` (для второго)
 
2: Добавление SSH-ключей в аккаунты GitLab
Далее публичные части ключей (`.pub`) добавляются в соответствующие аккаунты GitLab.
Для первого аккаунта это будет 
~/.ssh/id_rsa.pub
Для второго аккаунта 
~/.ssh/id_gitlab_work.pub
Кликаем на аватарку в gitlab, выбираем 
"Edit Profile" и в секции 
"SSH Keys" обоих аккаунтов добавляем соответствующие им публичные ключи
3: Настройка SSH-клиента
Чтобы система знала, какой ключ для какого репозитория использовать, настраивается файл конфигурации SSH. В нём создаются псевдонимы для `gitlab.com`.
1.  Нужно открыть или создать файл `~/.ssh/config`.
Если его нет, создаём:
touch ~/.ssh/config
2.  Открываем файл, добавляем конфигурацию, которая создаёт два «хоста», `gitlab.com-personal` и `gitlab.com-work`, которые оба ссылаются на `gitlab.com`, но используют разные файлы ключей.
# Первый аккаунт (например, личный)
Host gitlab.com-personal
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes
# Второй аккаунт (например, рабочий)
Host gitlab.com-work
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/id_gitlab_work
  IdentitiesOnly yes
4: Настройка локальных репозиториев
Теперь необходимо обновить URL-адреса удалённых репозиториев в локальных проектах, чтобы они использовали созданные псевдонимы.
1.  В директории проекта для 
первого аккаунта выполняется команда для изменения URL.
Проверить текущий адрес: 
git remote -v
Заменить `gitlab.com` на псевдоним 
gitlab.com-personal:
git remote set-url origin git@gitlab.com-personal:username/repo.git
2.  В директории проекта для 
второго аккаунта выполняется аналогичная команда, но с другим псевдонимом:
git remote set-url origin git@gitlab.com-work:otheruser/other-repo.git
При клонировании новых репозиториев следует сразу использовать адрес с нужным псевдонимом:
# Клонирование с первого аккаунта
git clone git@gitlab.com-personal:username/repo.git
# Клонирование со второго аккаунта
git clone git@gitlab.com-work:otheruser/other-repo.git
5: (Рекомендуется) Настройка автора коммитов
Чтобы коммиты в каждом репозитории подписывались правильными данными, а не глобальными настройками вашего git, следует задать имя и почту автора локально для каждого проекта.
В репозитории для 
первого аккаунта:
git config user.name "Имя для первого аккаунта"
git config user.email "email_первого_аккаунта@example.com"
В репозитории для 
второго аккаунта:
git config user.name "Имя для второго аккаунта"
git config user.email "email_второго_аккаунта@example.com"
После завершения настройки, при выполнении `git push` из разных директорий, Git будет автоматически использовать соответствующий ключ и данные автора.