配置ssh访问
- 生成秘钥
ssh-keygen -t rsa -C "注册的gitlab邮箱" -f ~/.ssh/gitlab_id_rsa
ssh-keygen -t rsa -C "注册的github邮箱" -f ~/.ssh/github_id_rsa
- 配置~/.ssh/config文件
只需配两项,其他参数默认即可
Host github
HostName github.com
IdentityFile ~/.ssh/github_id_rsa
Host gitlab
HostName gitlab.com
IdentityFile ~/.ssh/gitlab_id_rsa
- 添加新增的rsa到名字列表
这一步很重要,不然会找不到个性化的rsa默认使用系统的rsa
ssh-add ~/.ssh/gitlab_id_rsa
ssh-add ~/.ssh/github_id_rsa
-
将public key字符串复制添加到GitHub和gitlab的SSH key中
-
测试
ssh -T git@github.com
打印以下信息代表连接github成功:
Hi ****! You've successfully authenticated, but GitHub does not provide shell access.
ssh -T git@gitlab首页地址
打印以下信息代表连接gitlab成功:
Welcome to GitLab, @****!
其他github操作(不定时更新)
情景1:你本地已经存在一个名为storage的仓库,然后你发现有人在远程新建了一个分支branch_a,这个分支你本地的仓库并没有,可以使用以下操作pull下来
git fetch
git checkout -b branch_a origin/branch_a
情景2:若你日常开发需要同时使用gitlab和github账号对不同的项目进行管理,比如A项目使用gitlab账号,B项目使用github账号,这两个账号的用户名和邮箱一般不会相同。为了不用每次切换的时候都输入邮箱和密码,在上面配置了SSH访问的前提下,可以使用以下操作,一劳永逸。
#在A项目下
git config --local user.name 用户名1
git config --local user.email 邮箱1
#在B项目下
git config --local user.name 用户名2
git config --local user.email 邮箱2
如果使用
git config --global user.name 用户名1
git config --global user.email 邮箱1
每次想切换项目的时候,都需要重新配置一遍,麻烦。