Git简单入门

By | 2021-07-17

1. 前言

Git 已经成为我们开发最流行的版本控制工具了,Git 支持多种传输协议,其中最常用的就是https 和 ssh,平常我们用 https 比较多,这种方式 pull 和 push 代码都要输入账户密码,非常不方便。那么有没有更加方便而且安全的方式呢?当然有!ssh 方式可以做到这一点。

2. Git 中的 ssh

公有 Git 服务诸如 GitHub、Gitee、Coding、Gitlab 等都提供了 ssh 功能。通过 Gitlab 、Gogs、Gitea 搭建的私有 Git 服务也都有 ssh 功能。一般我们都可以在对应的设置 中找到。

3. ssh 公钥的生成

ssh 生成公钥的算法有很多种,我们通常使用 RSA 算法来生成密钥对。确保你在不同操作系统的用户目录 ~/.ssh 下没有 id_rsa 和 id_rsa.pub ,如果有就说明你已经生成了无需再生成。针对 Linux\Mac 和Windows 和我们来走一下流程。

3.1 Linux\Mac 为例

命令行执行:

ssh-keygen -t rsa -b 4096 -C "jackwen999@gmail.com"

后面让你输入密码你可以输入一个,或者一路 enter 按到底直接生成。生成完毕后执行以下命令查看公钥:

cat ~/.ssh/id_rsa.pub

切记一定要带 .pub 后缀,否则则为私钥。然后出现以 ssh-rsa 开头的字符串就是公钥:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDBYgnpCY9j/xhhZO4ryy7YrJRRUXydbVUyi8dSfyn5obFD0iJhqPCF1jk5LZuryhsmy
…………………(此处省略)
mH1eqd4SMXO8fJoaM7JOWYSs/xgRK9bw== jackwen999@gmail.com

4. 配置

我们生成了密钥对之后将 id_rsa.pub 的所有内容复制并填写到 公钥 一栏中配置好我们生成的公钥,Git 服务端就认可我们当前的主机了。我们就能以 git@ hostname:user/project.git 的形式进行无密码访问远程 Git 仓库了。

用法

从命令行创建一个新的仓库

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin http://tokyo.2280129.xyz:10000/jackwen999/coro.git
git push -u origin master

从命令行推送已经创建的仓库

git remote add origin http://tokyo.2280129.xyz:10000/jackwen999/coro.git
git push -u origin master