7

Есть 2 аккаунта на github.com.

Хотелось бы иметь возможность работать как с одним, так и с другим с одного пк.

Для этого:

  1. Захожу в первый аккаунт. Создаю для него ssh ключ.

    ssh-keygen

    cat ~/.ssh/id_rsa.pub (ввожу ключ на github в настройках акк.)

  2. Захожу во второй аккаунт. В консоли создаю для него SSH ключ:

    ssh-keygen -t rsa -C "user-2-email@gmail.com" с именем id_rsa_user2

  3. Ключи находятся в одной папке .ssh. Там же создаю файл config:

    # Default GitHub
    Host github.com
        HostName github.com
        PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
    
    # User2 GitHub
    Host user2.github.com
        HostName github.com
        PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa_user2
    
  4. Тест проходит:

    ssh -T git@github.com и ssh -T git@user2.github.com

    Hi ... ! You've successfully authenticated, but GitHub does not provide shell access.

Создаю разные папки с разными файлами. Одна папка test1 для первого аккаунта, вторая test2 соответственно для второго аккаунта user2.

Создаю соответствующие репозитории на github аккаунтах. Выбираю работу по ssh.

git init ... git add . git commit .... - после всей инициализации:

Ввожу:

git remote add origin git@github.com:user1/test1.git

или

git remote add origin git@github.com:user2/test2.git

После git push -u origin master выдает ошибки faild to push ... src refspec master does not match any ...

Вопрос: Как правильно работать с несколькими аккаунтами github с одного ПК, как правильно проводить переключение между данными аккаунтами и как правильно создавать при этот репозитории?

SVE
  • 22,387

2 Answers2

5

Решение оказалось простым git@user... т.е после знака @ указываем имя аккаунта (из config):

git remote add origin git@user1.github.com:user1/test1.git

или

git remote add origin git@user2.github.com:user2/test1.git
SVE
  • 22,387
0

Я нашел такой вариант:

Global config ~/.gitconfig

[user]
    name = John Doe
    email = john@doe.tld

[includeIf "gitdir:~/work/"]
    path = ~/work/.gitconfig

Work specific config ~/work/.gitconfig

[user]
    email = john.doe@company.tld

Как вам нравится такой вариант?