一、基于 git 的代码托管平台有哪些
- GitHub
- Gitee 码云:国内
- GitLab:既是一种服务,也是一种软件。你可以在http://gitlab.com上去租用服务,也可以下载gitlab软件自己搭建服务
二、SSH Key
1. 查看和生成 SSH Key
查看当前电脑是否存在 .ssh 文件夹:cd ~/.ssh (Win 默认路径 C:/Users/Administrator 文件夹下)
若不存在 .ssh 文件夹或 SSH Key 已失效,需要重新生成 SSH Key。打开终端,在 ./ssh 文件下输入:
ssh-keygen
当系统提示输入要保存密钥的文件夹时,直接按 Enter 键接受默认的文件位置就行了。
.ssh 文件夹里面有 id_rsa 和 id_rsa.pub 两个文件,id_rsa 是私钥,不能泄露出去,id_rsa.pub 是公钥,用于添加到 GitHub 或 GitLab 上。
查看公钥:打开终端,输入
cat id_rsa.pub
然后复制所有内容供添加公钥的时候使用。
2. 添加 SSH Key(GitHub)
登录GitHub -> 点击右上角公文包 -> Settings -> SSH and GPG keys -> Add SSH Key -> 在 Key 输入框添加 id_rsa.pub 文件里的内容 -》输入title -》点击 Add Key -》添加完成。
检查 SSH Key 是否添加成功:
ssh -T git@github.com
3. 添加 SSH Key(GitLab)
登录 GitLab -》点击右上角头像 -》Settings -》点击左侧的SSH Keys -》在 Key 输入框添加 id_rsa.pub 文件里的内容 -》输入title -》点击 Add Key -》添加完成。
检查 SSH Key 是否添加成功:
ssh -T git@git2.xxxx.cc
4. 如果同时使用GitLab和GitHub,那么就需要配置多个ssh key
1、使用如下命令,指定文件名生成一个ssh key
ssh-keygen -t rsa -C 'xxx@xxx.com' -f ~/.ssh/gitlab_rsa
此时在.ssh文件夹下面会生成gitlab_rsa和gitlab_rsa.pub两个文件
2、在~/.ssh文件夹下面新建名为config的文件,用来配置多个ssh key
# gitlab
Host gitlab.bitautotech.com
HostName gitlab.bitautotech.com
User xuxiaolong3
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# 配置文件参数
# Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
# HostName : 要登录主机的主机名
# User : 登录名,不填写的话,默认使用邮箱作为登录名
# IdentityFile : 指明上面User对应的identityFile路径
此时再次去终端进行clone,第一次会让你输入密码,输入完成之后就可以正常clone了。
三、为什么要添加 SSH Key?
ssh 是一种网络加密协议,在基于Git的代码托管平台上添加 SSH Key 以后就可以使用ssh地址克隆项目了,而且不用每次提交代码都输入用户名和密码。
项目比较大,提交记录很多的项目建议用 ssh clone 到本地,速度会比较快。
使用 https 地址clone
除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放 http 端口的公司内部就无法使用 ssh
clone而只能用 https
。
四、用ssh clone项目时,没有添加 SSH Key 情况下的报错信息
用 git clone 从 Git 上拉项目时,如遇到以下报错就是 github 上没有添加 SSH Key。
Warning: Permanently added the RSA host key for IP address '13.250.177.223' to the list of known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
五、GitHub平台上的一些操作
1. 如何在GitHub上删除项目?
点击要删除的项目 -> Settings -> 右下角 ‘Delete this repository’ -> 输入要删除的项目名。
2. 在 GitHub 上查看分支差异
比如我的 GitHub 上有一个叫 testGit 的项目,只要在浏览器地址栏后面加上 compare 就能跳转到分支对比页面:https://github.com/huangpb/testGit/compare。
还可以查看跟几天前的差异,想了解更多请点这里。
六、其他
1. GitLab 服务器 IP 地址更换了怎么办?
把 .ssh/known_hosts 文件里 GitLab 域名和IP的映射删除。具体步骤如下:
cd ~/.ssh
vim known_hosts
按 i,然后把 GitLab 的域名和对应的 ip 地址删除。
按 ESC,按 Shift + ;,按 wq 保存并退出。