大家都知道国内访问 Github 速度比较慢,很影响我们的使用。
如果你希望体验到 Git 飞一般的速度,可以使用国内的 Git 托管服务——Gitee(gitee.com)。
Gitee 提供免费的 Git 仓库,还集成了代码质量检测、项目演示等功能。对于团队协作开发,Gitee 还提供了项目管理、代码托管、文档管理的服务,5 人以下小团队免费。
接下来我们学习一下如何使用 Gitee。
SSH 公钥设置
Gitee 提供了基于 SSH 协议的 Git 服务,在使用 SSH 协议访问仓库仓库之前,需要先配置好账户 SSH 公钥。
生成 SSH 公钥
Windows 用户建议使用 Windows PowerShell 或者 Git Bash,在 命令提示符 下无
cat
和ls
命令。
- 通过命令
ssh-keygen
生成 SSH Key:
ssh-keygen -t ed25519 -C "Gitee SSH Key"
-t
key 类型-C
注释
输出,如:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/git/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/git/.ssh/id_ed25519
Your public key has been saved in /home/git/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:ohDd0OK5WG2dx4gST/j35HjvlJlGHvihyY+Msl6IC8I Gitee SSH Key
The key's randomart image is:
+--[ED25519 256]--+
| .o |
| .+oo |
| ...O.o + |
| .= * = +. |
| .o +..S*. + |
|. ...o o..+* * |
|.E. o . ..+.O |
| . . ... o =. |
| ..oo. o.o |
+----[SHA256]-----+
- 中间通过三次回车键确定
- 查看生成的 SSH 公钥和私钥:
ls ~/.ssh/
输出:
id_ed25519 id_ed25519.pub
- 私钥文件
id_ed25519
- 公钥文件
id_ed25519.pub
- 读取公钥文件
~/.ssh/id_ed25519.pub
:
cat ~/.ssh/id_ed25519.pub
输出,如:
ssh-ed25519 AAAA***5B Gitee SSH Key
复制终端输出的公钥。
设置账户 SSH 公钥
用户可以通过主页右上角 「个人设置」->「安全设置」->「SSH 公钥」->「添加公钥」 ,添加生成的 public key 添加到当前账户中。
需要注意: 添加公钥需要验证用户密码
通过 ssh -T
测试,输出 SSH Key 绑定的用户名:
$ ssh -T git@gitee.com Hi USERNAME! You've successfully authenticated, but GITEE.COM does not provide shell access.
在添加完公钥后,用户可以在 「个人设置」->「安全设置」->「SSH 公钥」 浏览查看当前账户已经添加的 SSH 公钥,并对公钥进行管理/删除操作。
仓库的 SSH Key 和账户 SSH Key 的区别?
账户的 SSH Key 和账户绑定,当账户具有 推送/拉取 权限时可通过 SSH 方式 推送/拉取 的仓库。
通过 ssh -T
测试时,输出 SSH Key 绑定的用户名:
$ ssh -T git@gitee.com
Hi USERNAME! You've successfully authenticated, but GITEE.COM does not provide shell access.
仓库的 SSH key 只针对仓库,且我们仅对仓库提供了部署公钥,即仓库下的公钥仅能拉取仓库,这通常用于生产服务器拉取仓库的代码。
通过 ssh -T
测试时,输出 Anonymous:
ssh -T git@gitee.com
Hi Anonymous! You've successfully authenticated, but GITEE.COM does not provide shell access.
新建仓库
登录gitee后点击右上角" 新建仓库 " 如下图所示:
之后在在名称和路径 填入 runoops-gitee-test (远程仓库名) ,其他保持默认设置,点击"创建"按钮,就成功地创建了一个新的Gitee仓库:
创建成功后,显示如下信息:
以上信息告诉我们可以从这个仓库克隆出新的仓库,也可以把本地仓库的内容推送到Gitee仓库。
现在,我们根据 Gitee 的提示,在本地的仓库下运行命令:
$ mkdir runoops-gitee-test
$ cd runoops-gitee-test
$ git init
$ touch README.md
$ echo "# runoops-gitee-test" >> README.md
$ git add README.md
$ git commit -m "first commit"
$ git remote add origin git@gitee.com:liqiang88/runoops-gitee-test.git
$ git push -u origin "master"
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 206 bytes | 206.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [1.1.5]
remote: Set trace flag b24081ab
To gitee.com:liqiang88/runoops-gitee-test.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
以下命令请根据你在Gitee成功创建新仓库的地方复制,而不是根据我提供的命令,因为我们的Gitee用户名不一样,仓库名也不一样。
接下来我们返回 Gitee 创建的仓库,就可以看到文件已上传到 Gitee上:
查看当前的远程库
要查看当前配置有哪些远程仓库,可以用命令:
git remote
实例
$ git remote
origin
$ git remote -v
origin git@gitee.com:liqiang88/runoops-gitee-test.git (fetch)
origin git@gitee.com:liqiang88/runoops-gitee-test.git (push)
执行时加上 -v 参数,你还可以看到每个别名的实际链接地址。