【问题标题】:How do i switch between different users(github accounts) when pushing repositories?推送存储库时如何在不同用户(github帐户)之间切换?
【发布时间】:2016-03-04 13:07:27
【问题描述】:

这是我遇到的问题。

首先,我正在从事几个不同的项目。 我有两个不同的 github 帐户,在设置其中一个并成功推送一个 repo 到它之后,我需要将另一个 repo 提交/推送到第二个帐户,这让我遇到了确切的问题。

如何使用 https 方式而不是 ssh 在这两个帐户之间切换?

P.S:我在 Mac 上。

我尝试更改 git config 全局/本地用户名和电子邮件,但没有成功。我不断收到同样的错误:

" 远程:对用户名/repo.git 的权限被拒绝。 致命:无法访问“repos 地址”:请求的 URL 返回错误:403"。

【问题讨论】:

    标签: git github


    【解决方案1】:

    您将需要使用不同的 ssh 密钥。

    阅读此完整文档并按照步骤操作。

    不同 github 账户的多个 SSH Keys 设置:

    https://gist.github.com/jexchan/2351996


    create different public key

    根据文章 Mac Set-Up Git 创建不同的 ssh 密钥

    $ ssh-keygen -t rsa -C "your_email@youremail.com"
    

    例如,2 个密钥创建于:

    ~/.ssh/id_rsa_activehacker
    ~/.ssh/id_rsa_jexchan
    

    Add these two keys to the ssh-agent:

    $ ssh-add ~/.ssh/id_rsa_activehacker
    $ ssh-add ~/.ssh/id_rsa_jexchan
    you can delete all cached keys before
    
    $ ssh-add -D
    

    check your keys

    $ ssh-add -l
    

    Modify the ssh config

    $ cd ~/.ssh/
    $ touch config
    $ subl -a config
    

    Add the keys to the config file:***

    #activehacker account
    Host github.com-activehacker
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_activehacker
    
    #jexchan account
    Host github.com-jexchan
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_jexchan
    

    Clone you repo and modify your Git config

    # clone your repo 
    git clone git@github.com:activehacker/gfs.git gfs_jexchan
    
    cd gfs_jexchan and modify git config
    
    $ git config user.name "jexchan"
    $ git config user.email "jexchan@gmail.com" 
    
    $ git config user.name "activehacker"
    $ git config user.email "jexlab@gmail.com" 
    
    # or you can have global 
    git config $ git config --global user.name "jexchan" 
    git config --global user.email "jexchan@gmail.com"
    

    push your code

    # add the code and commit it
    git add .
    git commit -m "your comments"
    
    # push the code to the remote server
    git push
    

    【讨论】:

      【解决方案2】:

      我们还需要将 ssh 密钥添加到各个帐户,否则身份验证将失败。

      这个完美无瑕 - https://code.tutsplus.com/tutorials/quick-tip-how-to-work-with-github-and-multiple-accounts--net-22574

      【讨论】:

        猜你喜欢
        • 2017-12-03
        • 2012-07-12
        • 1970-01-01
        • 2022-10-07
        • 2021-04-06
        • 2021-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多