## 1. 前言 **Git 是一个版本控制工具,GitHub 是全球最大的代码托管平台,你可以理解为就是存放代码的地方。** 每次提到 Git 就想到第一次接触它的时候,我想通过 Hexo 搭建一个博客,需要把博客上传到 GitHub 上,当时搞半天就是上传不上去,对于一些命令也不是很理解,我现在已经不记得最后怎么把它搞好的... Git 相信大家都不陌生了,我们前面的几篇系列文章经常使用,但之前为什么没有配置也可以使用呢,因为我们只用了它一个命令 `git clone`,下载项目不需要知道你是谁,但你如果想提交代码就需要告诉它你是谁,今天我们就从头配置一下 Git、GitHub 以及常用基础命令,关于 Git 的具体使用可以单独出一期来介绍。 ## 2. 初始化配置 配置用户名和邮箱,用来告诉 Git 你是谁。 ```bash git config --global user.name "tonngw" git config --global user.email "xxx@qq.com" ``` 设置完成之后,可以查看你的 Git 配置 ```bash git config --list ``` ![](https://cdn.nlark.com/yuque/0/2024/png/1863084/1719239984141-c3070c82-ec50-4b94-b88e-fc61d433005d.png) ## 3. 配置 SSH 使用 SSH 可以免密提交我们的代码到 GitHub,否则你每次提交代码到 GitHub 都需要输入用户名和密码,显然配置 SSH 是非常有必要的。 1. 首先在本地生成 ssh 秘钥,输入命令一路回车即可。 ```bash ssh-keygen ``` ![](https://cdn.nlark.com/yuque/0/2024/png/1863084/1719240269070-48d79f88-5ac4-4ae7-aa8b-59f7b8b131ba.png) 2. 查看生成的公钥和私钥 ```bash ls -al ~/.ssh ``` ![](https://cdn.nlark.com/yuque/0/2024/png/1863084/1719240392809-30a9ff11-2f08-4c65-b532-0d374b348bd5.png) 3. 进入 cd `~/.ssh`目录复制公钥 ```bash cat id_ed25519.pub ``` 将输出的内容复制下来 ## 4. 配置 GitHub 免密提交 1. 进入 GitHub 个人页面 [https://github.com/settings/profile](https://github.com/settings/profile) 2. 新建一个 SSH Key 公钥,把刚才复制的公钥粘贴进去。 ![](https://cdn.nlark.com/yuque/0/2024/png/1863084/1719240811130-cd9e4f20-16f0-415a-ae51-33da9744148f.png) ![](https://cdn.nlark.com/yuque/0/2024/png/1863084/1719240881979-555683a5-6356-4498-bc4c-b65c200986f1.png) 3. 验证 SSH 免密连接创建成功 ```bash ssh -T git@github.com ``` ![](https://cdn.nlark.com/yuque/0/2024/png/1863084/1719241182024-f1b0c6d6-2d8c-431c-84ef-1e69edccbc20.png) ## 5. 基础 Git 命令 首先介绍三个概念: + 暂存区:暂时存放你的改动但还没有被 Git 管理。 + 本地仓库:提交到本地仓库后就会被 Git 管理。 + 远程仓库:把你的代码放到 GitHub 上。 初始化一个项目 ```bash # 初始化一个本地项目 git init # 从 GitHub 远程仓库下载一个项目 git clone git@github.com:tonngw/acwing-helper.git ``` 将代码提交到暂存区 ```bash # 添加一个文件/目录到暂存区 git add file/directory # 添加当前目录下所有的改动到暂存区 git add . ``` 将代码提交到本地 Git 仓库 ```bash # 提交你的代码到本地仓库 git commit -m "Initial commit" ``` 将代码提交到 GitHub 远程仓库,如果你没有远程仓库则需要先创建一个 ```bash # 设置当前项目与远程仓库关联 git remote add origin git@github.com:tonngw/acwing-helper.git ``` 真正的提交 ```bash # 将代码提交到 GitHub git push origin main ``` 如果你远程改了代码后,可以在本地拉取最新的代码 ```bash git pull origin main ``` ## 6. 最后 忘了说了 Git 也是 Linus 的杰作,我认为 Git 的学习一定是真正去用起来才能学会,创建一个项目发布到 GitHub 上、和同学进行写作开发、给开源项目提 PR、tag 打包等等,其实真正开发中用到的命令很少,很多知识还是需要自己去实践去积累才能习得的。