GitHub
、GitLab
是目前最流行的代码托管平台,前者经常用于我的代码托管,然后者经常使用于企业代码托管。所以在实际工做中,咱们一般会在同一台电脑设备上,使用这两个平台进行代码托管。git
SSH-Key
是这两个平台的密钥认证方式,为本身的电脑添加密钥认证,能够更加简单、高效、安全地完成代码托管的工做。github
本文将详细讲解如何在同一台电脑上为两个平台添加不一样的SSH-Key
,而且管理这些密钥。安全
用本身的邮箱注册GitHub
、Gitlab
帐号,注册过程忽略。bash
Git安装包网址ssh
进入网站下载本身电脑对应的版本、直接安装便可。gitlab
安装完成后,在CMD
中输入下面的代码,查看Git
的版本号。测试
git -- version
复制代码
打开GitBash
(Git
安装成功后会自动在鼠标右键添加GitBash
)输入如下命令生成密钥。网站
ssh-keygen -t ed25519 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa
ssh-keygen -o -t rsa -b 4096 -C "email@example.com" -f ~/.ssh/gitlab_id_rsa
email@example.com 表明注册Gitlab帐号时用的邮箱
-f 表明文件名
~/.ssh/ 表明ssh的文件路径
gitlab_id-rsa 表明ssh文件名(能够自定义)
复制代码
到这里,咱们就生成了一个Gitlab
的密钥,GitHub
密钥的生成方式同上。ui
复制密钥的方式有两种。加密
输入cat ~/.ssh/ssh文件名 | clip
,例如cat ~/.ssh/gitlab_id_rsa.pub | clip
,复制ssh key。
直接用记事本打开gitlab_id-rsa.pub
,复制SSH-Key
。
复制好对应平台的密钥后,就能够到对应平台的SSH-Key
中添加密钥了
添加完SSH-Key
后,咱们须要测试密钥是否可用,以GitHub
为例,在GitBash
中输入如下的命令。
ssh -T git@github.com
复制代码
如图所示GitHub
的密钥认证成功,Gitlab
密钥认证的测试方式同上。
须要注意的是,因为Gitlab
是私有代码仓库,测试时须要在git@
后面输入Gitlab
所在ip地址
或域名
,才能正确测试。
当你在同一台电脑下生成多个密钥时,你就须要对多个密钥进行认证管理,不然你的密钥将没法正常使用。
具体步骤以下。
首先在./ssh/
文件夹下手动config
文件,配置密钥信息。
# gitlab
Host gitlab.com
HostName gitlab.com
User root
IdentityFile ~/.ssh/id_rsa
# github
Host github.com
HostName github.com
User root
IdentityFile ~/.ssh/id_rsa_github
Host 表明 关键词
HostName 表明 主机地址
User 表明 用户名
IdentityFile 表明 认证文件
复制代码
完成配置,还须要对每一个密钥添加信任,打开Git Bash
输入下面的指令。
eval $(ssh-agent -s)
ssh-add ~/.ssh/other_id_rsa
eval 表明 开启代理认证指令
ssh-add 表明 添加ssh文件认证
复制代码
须要重点提醒,config
文件主要用于管理密钥信息,并无实际功能,不添加config
文件直接为密钥添加信任也是能够的。
可是考虑到密钥信息的管理,强烈建议添加config
文件,配置好密钥的信息。
完成多秘钥认证后,经过ssh -T git@
,测试不一样平台的密钥是否能链接成功。
最后附上经常使用的Git
命令,供你们参考使用
检出仓库:$ git clone [git url]
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push[name][newUrl]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
复制代码
查看本地分支:$ git branch
查看远程分支:$ git branch -r
建立本地分支:$ git branch [name] ----注意新分支建立后不会自动切换为当前分支
切换分支:$ git checkout [name]
建立新分支并当即切换到新分支:$ git checkout -b [name]
建立远程分支(本地分支push到远程):$ git push origin [name]
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
删除本地分支:$ git branch -d [name]
删除远程分支:$ git push origin -d [name]
复制代码
查看当前项目下全部文的状态:$ git status
(.)点表示当前目录下的全部内容,交给git管理:$ git add .
对你更新或修改了哪些内容作一个描述:$ git commit –m”new natter ”
查看你当前项目远程链接的是哪一个仓库地址:$ git remote -v
将本地的项目提交到远程仓库中:$ git push origin master
将远程仓库项目拉到本地项目中:$ git pull origin master
复制代码
以上就是本文的所有内容了,感谢你的阅读,若是你有什么疑问或者建议,欢迎你随时留言,互相讨论。
最后,祝工做顺利,生活幸福。