将github repos作为不同的用户推送

时间:2015-09-24 15:48:08

标签: git github atlassian-sourcetree

我想出了如何从不同的repos中作为Source Tree中的不同用户进行拉取,基本上你只需要确保你的repo就像

https://username@github.com/repo-name.git

这很有效。然而,作为特定用户提交和推送似乎是一个巨大的痛苦。下面我重现了我目前使用的方法(它确实有效),但我希望有一种方法可以在Source Tree中进行本地化。有吗?

这是特定于Mac的,但在任何* nix系统上都可以完全相同。

首先,您必须能够通过ssh对Github进行身份验证。

  1. 创建新的SSH密钥

    • ssh-keygen -t rsa -b 4096 -C“other-gitub-email@domain.com”

    • 出现提示时,将文件保存到 /Users/yourname/.ssh/other-github-email

  2. 将SSH密钥复制到github

    • pbcopy<的〜/ .ssh /其他-github上的电子邮件

    • 登录github上的other-github-email用户

    • 转到设置 - > ssh键 - >添加ssh密钥

    • cmd + v你的钥匙进入方框

  3. 创建配置文件以识别本地计算机上的新用户

    • 触摸〜/ .ssh / config

    • 编辑该文件并在其中加入以下内容:

      Host personalGithub
      Hostname github.com
      User yourusername
      IdentityFile ~/.ssh/id_rsa
      
      Host other-github-email
      Hostname github.com
      User other-github-email
      IdentityFile ~/.ssh/other-github-email
      
  4. 将新ID添加到当前的SSH会话

    • 评估“$(ssh-agent -s)”

    • ssh-add~ / .ssh / other-gitub-email

  5. 测试您的连接

    • ** ssh -T git@github.com
  6. 假设您可以连接到github,如果您使用此repo命名结构,现在可以使用SourceTree从git https://other-gitub-email@github.com/repo.git

    但是,要推送提交,您必须从命令行执行此操作。

    1. 将您的other-gitub-email id添加到当前的SSH会话

      • 评估“$(ssh-agent -s)”

      • ssh-add~ / .ssh / other-gitub-email

    2. 测试您的连接

      • ssh -T git@github.com
    3. 使用指定的正确作者进行提交(您可能必须先git add filename

      • git commit --author ='other-gitub-email< other-gitub-email@domain.com>'-m'commit message'
      • git push origin master
    4. 或者,推送到分支

      • git push origin branchname:branchname
    5. 正如我所说......上述步骤确实有效,但它完全扰乱了我的工作流程。我很乐意用Source Tree做它。帮助

0 个答案:

没有答案