我想出了如何从不同的repos中作为Source Tree中的不同用户进行拉取,基本上你只需要确保你的repo就像
https://username@github.com/repo-name.git
这很有效。然而,作为特定用户提交和推送似乎是一个巨大的痛苦。下面我重现了我目前使用的方法(它确实有效),但我希望有一种方法可以在Source Tree中进行本地化。有吗?
这是特定于Mac的,但在任何* nix系统上都可以完全相同。
首先,您必须能够通过ssh对Github进行身份验证。
创建新的SSH密钥
ssh-keygen -t rsa -b 4096 -C“other-gitub-email@domain.com”
出现提示时,将文件保存到 /Users/yourname/.ssh/other-github-email
将SSH密钥复制到github
pbcopy<的〜/ .ssh /其他-github上的电子邮件
登录github上的other-github-email用户
转到设置 - > ssh键 - >添加ssh密钥
cmd + v你的钥匙进入方框
创建配置文件以识别本地计算机上的新用户
触摸〜/ .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
将新ID添加到当前的SSH会话
评估“$(ssh-agent -s)”
ssh-add~ / .ssh / other-gitub-email
测试您的连接
假设您可以连接到github,如果您使用此repo命名结构,现在可以使用SourceTree从git 拉: https://other-gitub-email@github.com/repo.git
但是,要推送或提交,您必须从命令行执行此操作。
将您的other-gitub-email id添加到当前的SSH会话
评估“$(ssh-agent -s)”
ssh-add~ / .ssh / other-gitub-email
测试您的连接
使用指定的正确作者进行提交(您可能必须先git add filename
)
推
或者,推送到分支
正如我所说......上述步骤确实有效,但它完全扰乱了我的工作流程。我很乐意用Source Tree做它。帮助