问题描述
我目前正在将Bitbucket用于工作和个人项目。问题是我登录时有两个不同的Bitbucket用户,用于访问和提交用于工作的存储库以及用于个人项目的存储库。
我将一个SSH密钥对用于工作存储库,将另一个SSH密钥对用于我的个人存储库。但是,当我运行以下命令时,总是看到我以工作用户身份登录到Bitbucket:
ssh -vT [email protected]
结果,我无法从命令行从我的个人Bitbucket存储库中推入或拉出。如何设置我的存储库,以便它始终自动以我的工作Bitbucket用户身份推送和拉出工作存储库,并以我的个人Bitbucket用户身份自动存储和推送个人存储库?谢谢。
解决方法
做到这一点的方法是将给定的git repo中找到的$HOME/.ssh/config
文件和reponame/.git/config
文件合并在一起。
您的$HOME/.ssh/config
文件如下所示。
username@hostname:~$ cat ~/.ssh/config
Host bbmine
HostName bitbucket.org
User git
IdentityFile /home/username/.ssh/id_rsamine
Host bbwork
HostName bitbucket.org
User git
IdentityFile /home/usermname/.ssh/id_rsawork
在git仓库中的文件reponame/.git/config
中,您将放置一个如下所示的远程部分:
[remote "bbmineremote"]
url = bbmine:bitbucketusername/reponame.git
fetch = +refs/heads/*:refs/remotes/bitbucket/*
然后您可以像推和拉树枝一样
git push bbmineremote master
或
git pull bbmineremote master
您可以通过运行以下ssh命令来确认已正确设置
username@hostname:~$ ssh bbmine
PTY allocation request failed on channel 0
logged in as bitbucketusername
You can use git or hg to connect to Bitbucket. Shell access is disabled
Connection to bitbucket.org closed.
Host
文件中的这些.ssh/config
部分就像是使用ssh
的事物(例如git
)的别名。