一个命令github账户切换
这个解决方案采用一个git别名的形式。一旦执行,当前项目用户将附加到另一个帐户
生成ssh密钥
ssh-keygen -t rsa -C "rinquin.arnaud@gmail.com" -f '/Users/arnaudrinquin/.ssh/id_rsa'
[...]
ssh-keygen -t rsa -C "arnaud.rinquin@wopata.com" -f '/Users/arnaudrinquin/.ssh/id_rsa_pro'
将它们链接到你的GitHub / Bitbucket帐户
复制默认公钥pbcopy < ~/.ssh/id_rsa.pub
登录到你的GitHub账户
粘贴密钥在添加SSH密钥github页面
复制其他公钥pbcopy < ~/.ssh/id_rsa_pro.pub
对其他帐户重复并调整步骤2至4
步骤1。ssh密钥自动切换。
我们可以将ssh配置为根据主机使用特定的加密密钥发送。好处是同一个主机名可以有多个别名。
请看这个例子~/。ssh /配置文件:
# Default GitHub
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
# Professional github alias
Host github_pro
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_pro
Git远程配置
现在可以在git远程中使用这些别名,方法是将git@github.com改为git@github_pro。
您可以更改现有的项目远程(使用类似git remote set-url origin git@github_pro:foo/bar.git之类的东西),或者在克隆它们时直接调整它们。
git clone git@github.com:ArnaudRinquin/atom-zentabs.git
使用别名,它变成:
git clone git@github_pro:ArnaudRinquin/atom-zentabs.git
步骤2。修改git user.email
Git配置设置可以是全局的,也可以是每个项目的。在本例中,我们需要一个每个项目的设置。更改它很容易:
git config user.email 'arnaud.rinquin@wopata.com'
虽然这很容易,但这让我们对开发者产生了渴望。我们可以为此编写一个非常简单的git别名。
我们将把它添加到~/。gitconfig文件。
[user]
name = Arnaud Rinquin
email = rinquin.arnaud@gmail.com
...
[alias]
setpromail = "config user.email 'arnaud.rinquin@wopata.com'"
然后,我们所要做的就是git setpromail来改变我们的电子邮件仅为这个项目。
步骤3。一个命令开关?!
从默认帐户切换到使用单一无参数命令的指定帐户不是很好吗?这绝对是可能的。这个命令有两个步骤:
将当前项目远程更改为所选别名
修改当前业务群组用户。邮件配置
对于第二步,我们已经有了一个命令解决方案,但第一步要困难得多。
一个命令远程主机更改
下面是另一个git别名命令的解决方案,可以添加到~/.gitconfig中:
[alias]
changeremotehost = !sh -c \"git remote -v | grep '$1.*fetch' | sed s/..fetch.// | sed s/$1/$2/ | xargs git remote set-url\"
这允许将所有远程服务器从一个主机更改为另一个主机(别名)。请看例子:
$ > git remote -v
origin git@github.com:ArnaudRinquin/arnaudrinquin.github.io.git (fetch)
origin git@github.com:ArnaudRinquin/arnaudrinquin.github.io.git (push)
$ > git changeremotehost github.com github_pro
$ > git remote -v
origin git@github_pro:ArnaudRinquin/arnaudrinquin.github.io.git (fetch)
origin git@github_pro:ArnaudRinquin/arnaudrinquin.github.io.git (push)
把它们结合起来
现在我们只需要把这两个命令合并成一个,这很简单。看看我是如何整合比特桶主机切换的。
[alias]
changeremotehost = !sh -c \"git remote -v | grep '$1.*fetch' | sed s/..fetch.// | sed s/$1/$2/ | xargs git remote set-url\"
setpromail = "config user.email 'arnaud.rinquin@wopata.com'"
gopro = !sh -c \"git changeremotehost github.com github_pro && git changeremotehost bitbucket.com bitbucket_pro && git setpromail\"
来源链接-Github
源链接-教程