Git+Gitee 新手教程精简归纳版
面向第一次接触 Git / Gitee 的新手。
目标:看懂 Git 和 Gitee 的关系,配置好提交身份与 SSH,学会创建仓库、克隆、提交、拉取和推送代码。
一、Git 和 Gitee 到底是什么关系?
先记最简单的一句话:
Git = 管本地版本
Gitee = 放远程代码
- Git
Git 是一个版本控制工具,安装在自己的电脑上。
它主要负责:
- 记录文件修改
- 保存一次次提交记录
- 查看修改历史
- 回退版本
- 创建和管理分支
- 与远程仓库同步代码
- Gitee
Gitee(码云)是一个基于 Git 的代码托管平台。
它主要负责:
- 把代码保存在远程服务器
- 在线查看代码和提交历史
- 多台电脑同步代码
- 团队协作
- Fork、Pull Request、Issue 等开发协作功能
所以可以简单理解为:
自己的电脑
↓
Git
↓
本地仓库
↓
push / pull
↓
Gitee
↓
远程仓库
Gitee 不等于 Git。
Git 是版本控制工具,Gitee 是代码托管平台;日常开发时通常把两者配合起来使用。
二、Git 第一次使用:全局配置
安装 Git后,先设置提交人的名字和邮箱。
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
例如:
git config --global user.name "xiaoming"
git config --global user.email "xiaoming@qq.com"
查看是否配置成功:
git config --global --list
这两个配置是干什么的?
它们不是 Gitee 的登录账号和密码。
它们主要用来标记:
这次 commit 是谁提交的?
以后执行:
git commit -m "修改登录页面"
Git 会把提交人的名字和邮箱一起记录下来。
如果希望 Gitee 正确关联自己的提交记录,邮箱建议使用 Gitee 账号中已经绑定的邮箱。
注册GItee,安装 Git完成后, 右键打开想要上传Gitee的文件夹,找到open Git Bash here点击(没有点击显示更多选项再找),先设置提交人的名字和邮箱。
小提示:如果终端中引号没有输入完整,可能会出现 > 等等待输入的提示。可以按 Ctrl + C 取消后重新输入。
三、SSH 免密连接:新手真正需要懂什么?
Git 连接 Gitee 常见有两种方式:
HTTPS
SSH
简单理解:
HTTPS → 通常使用用户名 + 私人令牌进行认证
SSH → 使用 SSH 公钥 / 私钥进行认证
如果是自己的电脑长期开发,SSH 很方便:配置一次以后,通常不需要每次 push / pull 都重新输入 Gitee 的账号或令牌。
- SSH 到底做了什么?
SSH 是一种安全的网络通信协议。
本地电脑通过 SSH 连接 Gitee 时,可以简单理解成下面几个步骤:
① 确认远程服务器身份
↓
② 协商出本次连接使用的会话密钥
↓
③ 使用 SSH 公钥 / 私钥验证你的身份
↓
④ 建立加密连接
↓
⑤ 在连接中传输 Git 数据
这里最容易理解错的一点是:
RSA / Ed25519 不是拿来直接加密整个 Git 项目文件的。
SSH 建立连接后,大量数据传输主要依靠高效的对称加密保护。
RSA、Ed25519 这类 SSH 密钥,在我们日常配置 Gitee 时最重要的作用是:
证明"你确实拥有对应的私钥"
- 公钥和私钥
生成 SSH Key 后会得到一对密钥。
以 Ed25519 (密钥)为例:
id_ed25519
id_ed25519.pub
区别一定要记住:
文件 是什么 能不能给别人
id_ed25519 私钥 ❌ 绝对不要泄露
id_ed25519.pub 公钥 ✅ 可以上传到 Gitee
可以这样理解:
自己的电脑
保留私钥
↓
id_ed25519
Gitee
保存公钥
↓
id_ed25519.pub
后面连接 Gitee 时,本地使用私钥完成身份认证,Gitee 根据账号中保存的公钥进行验证。
最重要的一句话:
公钥可以公开,私钥必须保密。
- RSA 和 Ed25519 怎么选?
SSH 可以使用多种密钥类型,新手最常碰到的是:
RSA
Ed25519
Ed25519:新建密钥优先推荐
正常情况下直接使用:
ssh-keygen -t ed25519 -C "Gitee"
也可以把备注写成邮箱:
ssh-keygen -t ed25519 -C "your-email@example.com"
-C 后面的内容只是一个备注,方便以后辨认这把密钥,并不是必须填写 Gitee 邮箱。
Ed25519 的特点可以简单记成:
- 密钥较短
- 速度快
- 现代 OpenSSH 广泛支持
- 新建 SSH Key 时很适合优先选择
RSA:仍然可以使用
例如:
ssh-keygen -t rsa -b 3072 -C "Gitee"
RSA 并不是"已经不能用了"。
这里经常出现一个容易混淆的概念:
RSA 密钥
≠
ssh-rsa(RSA + SHA-1 旧签名方式)
现代 OpenSSH 不推荐旧的 ssh-rsa SHA-1 签名方式,但 RSA 密钥本身仍然可以使用更现代的 SHA-2 签名方式。
新手可以直接记:
新建密钥
→ 优先 Ed25519
特殊旧环境兼容
→ 再考虑 RSA
所以本文后面统一使用 Ed25519。
四、配置 SSH:一台电脑通常只需要做一次
- 生成 SSH 密钥
执行:
ssh-keygen -t ed25519 -C "Gitee"
终端会询问密钥保存位置。
如果没有特殊需求,直接回车使用默认位置即可。
Windows 一般保存在:
C:\Users\你的用户名\.ssh\
常见会生成:
id_ed25519
id_ed25519.pub
- 要不要设置私钥口令?
生成过程中可能看到:
Enter passphrase
这是询问:
要不要给本地私钥再加一层保护密码?
两种方式都能正常使用。
直接回车:
- 不给私钥设置口令
- 使用最方便
- 适合新手学习环境
设置口令:
- 私钥文件多一层保护
- 安全性更好
- 使用时可能需要输入口令,或者配合 ssh-agent
如果是自己的长期开发电脑,建议根据自己的安全需求决定。
- 复制公钥
Windows 可以进入:
C:\Users\你的用户名\.ssh\
找到:
id_ed25519.pub
用文本编辑器(只要能显示文字就可)打开并完整复制内容。
一般类似:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... Gitee
⚠️ 一定注意:
id_ed25519.pub
才是可以上传的公钥。
不要把:
id_ed25519
这个私钥文件发给任何人。
- 把公钥添加到 Gitee
登录 Gitee 后进入账号设置中的 SSH 公钥 页面,添加刚才复制的公钥。
标题可以写成:
家里电脑/笔记本/公司电脑
这样以后比较容易判断每一把密钥属于哪台设备。
个人日常开发通常使用账号的 SSH 公钥。
"部署公钥"主要用于仓库或部署场景,不要和个人账号 SSH 公钥混在一起。
- 测试 SSH 是否成功
执行:
ssh -T git@gitee.com
第一次连接时可能提示是否信任服务器。
确认信息无误后,根据提示输入:
yes
如果认证成功,会看到 Gitee 返回的认证成功提示。
如果出现:
Permission denied (publickey)
优先检查:
- 上传的是不是 .pub 公钥
- Gitee 中的公钥是否复制完整
- 本地私钥文件是否还存在
- 当前使用的密钥是否和上传的公钥属于同一对
- 是否使用了正确的 Gitee 账号
五、创建 Gitee 仓库:先判断是哪种情况
这是新手很容易踩坑的地方。
情况 A:本地已经有项目,准备第一次上传 Gitee
例如你的电脑上已经有:
my-project/
├── index.html
├── css/
└── js/
这时候建议:
在 Gitee 创建一个空仓库。
先不要初始化 README、.gitignore、LICENSE。
这样本地第一次 push 时最省事,不容易出现"本地和远程都有首次提交"的冲突。
情况 B:准备从 Gitee 开始创建项目
如果还没有本地项目,可以在 Gitee 创建仓库时初始化:
- README.md
- .gitignore
- LICENSE
然后直接:
git clone 仓库地址
把完整仓库克隆到本地。
README、.gitignore、LICENSE 是什么?
项目介绍文件。
一般写:
- 项目是做什么的
- 怎么安装
- 怎么运行
- 有哪些功能
Gitee 仓库主页通常会直接展示 README。
.gitignore
告诉 Git:
哪些文件不要提交
例如:
缓存文件
编译产物
IDE 配置
临时文件
依赖目录
LICENSE
开源许可证。
它主要说明:
别人可以怎样使用、修改、分发你的代码
如果只是自己的私有练习项目,不一定必须添加。
Git 会不会保存空文件夹?
不会。
Git 主要跟踪的是文件内容!!!不是空目录本身。
所以:
empty-folder/
如果里面一个文件都没有,提交后远程仓库通常看不到这个目录。
有些项目会在空文件夹里放:
.gitkeep
用于让目录能够被 Git 间接保留下来。
六、本地仓库和 Gitee 远程仓库怎么绑定?
- git init
如果当前文件夹还不是 Git 仓库:
git init
执行以后,会在当前项目中生成隐藏目录:
.git
说明当前目录已经变成 Git 仓库。
- origin 是什么?
例如:
git remote add origin git@gitee.com:用户名/仓库名.git
这里:
origin
只是远程仓库地址的一个别名。
它不是 Gitee 的固定关键字,但行业中通常把主要远程仓库叫做 origin。
简单理解:
origin
=
这个远程仓库地址的小名
- 第一次添加远程仓库
SSH:
git remote add origin git@gitee.com:命名空间/仓库名.git
注意:
git remote add origin 一般只在第一次绑定时使用。
- origin 已经存在怎么办?
先查看:
git remote -v
如果已经有 origin,只是想修改地址:
git remote set-url origin git@gitee.com:命名空间/仓库名.git
所以记住:
没有 origin
→ git remote add origin ...
已经有 origin
→ git remote set-url origin ...
-
删除 origin
git remote remove origin
然后就可以重新添加。
七、SSH 和 HTTPS 怎么选?
- SSH
远程地址一般类似:
git@gitee.com:命名空间/仓库名.git
优点:
- 配置一次后使用方便
- 不需要每次输入 Gitee 令牌
- 很适合自己的长期开发电脑
本文更推荐新手长期使用 SSH。
- HTTPS
远程地址一般类似:
https://gitee.com/命名空间/仓库名.git
例如:
git remote add origin https://gitee.com/命名空间/仓库名.git
使用 HTTPS 推送代码时,如果平台要求身份验证,通常使用:
用户名 + Gitee 私人令牌
令牌相当于一种专门用于程序访问的凭证。
Gitee 当前可以在个人账号设置中的私人令牌页面生成令牌,并选择实际需要的权限。
⚠️ 私人令牌要像密码一样保管。
不建议把 Token 直接写进远程 URL
不要把日常教程写成:
https://用户名:Token@gitee.com/...
虽然某些场景技术上可以这样传递认证信息,但令牌可能暴露在:
- Git 配置
- 命令历史
- 日志
- 截图
对于普通本地开发,没有必要承担这个风险。
自动化环境需要使用令牌时,也更适合放在:
Secret
环境变量
CI/CD 凭据管理
而不是直接硬编码到仓库地址里。
八、三种最常见的 Git 使用场景
场景 1:下载别人已经存在的仓库
直接:
git clone 仓库地址
例如 SSH:
git clone git@gitee.com:命名空间/仓库名.git
或者 HTTPS:
git clone https://gitee.com/命名空间/仓库名.git
执行后 Git 会自动:
创建项目文件夹
↓
下载代码
↓
创建 .git
↓
配置 origin
所以 clone 下来的仓库通常不用再执行:
git init
git remote add origin ...
场景 2:本地已有项目,第一次上传空的 Gitee 仓库
保证已经连接用户名和邮箱且准备工作密钥绑好❗️❗️❗️
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
ssh-keygen -t ed25519 -C "任意备注"
绑定远程仓库:
git remote add origin git@gitee.com:命名空间/仓库名.git
查看当前分支:
git branch --show-current
进入项目文件夹:
git init
查看状态:
git status
加入暂存区:
git add .
生成第一次提交:
git commit -m "初始化项目"
第一次推送:
git push origin master
场景 3:以后每天修改代码
常见流程:
git push origin mastergit add .
git commit -m "说明本次修改内容"
git push
例如:
git add .
git commit -m "修复登录按钮样式"
git push origin master
这就是最常用的一套流程:
修改文件
↓
git add
↓
git commit
↓
git push
九、多人协作时:pull 很重要
如果只有自己一个人在维护仓库,冲突相对少。
多人同时开发时,远程仓库可能已经被别人更新。
所以更好的习惯是:
开始工作前
先同步远程最新代码
例如明确写远程和分支:
git pull origin master
然后再修改代码、提交和推送。
常见流程:
git pull
git status
git add .
git commit -m "本次更新说明"
git pull origin master
如果你提交期间别人又 push 了新的代码,Git 可能要求你再次同步并解决冲突后才能继续推送。
master 只是示例。
你的仓库也可能使用 main 或其他分支名。
查看当前分支:
git branch --show-current
十、最常用 Git 命令速查
初始化仓库
git init
查看状态
git status
这个命令非常重要。
不知道下一步该做什么时,可以先执行:
git status
添加文件到暂存区
添加当前目录全部改动:
git add .
添加指定文件:
git add index.html
提交
git commit -m "本次修改说明"
例如:
git commit -m "新增用户登录页面"
提交说明建议写清楚:
做了什么?
不要长期全部写成:
修改
更新
111
测试
后面查历史会很痛苦。
修改最近一次提交说明
如果刚刚 commit 后发现备注写错了:
git commit --amend -m "新的提交说明"
如果这个提交已经推送给其他人使用,就不要随便改历史。
查看远程地址
git remote -v
添加远程仓库
git remote add origin 仓库地址
修改远程地址
git remote set-url origin 新地址
删除远程地址
git remote remove origin
查看当前分支
git branch --show-current
拉取远程代码
git pull
推送
git push
第一次建立跟踪关系时可能使用:
git push origin master
克隆仓库
git clone 仓库地址
查看提交历史
简洁查看:
git log --oneline
十一、git add、commit、push 到底有什么区别?
这是新手最容易混的一组。
可以把 Git 想成三个区域:
工作区
↓
暂存区
↓
本地仓库
↓
远程仓库 Gitee
git add
git add .
意思:
把准备提交的修改放到暂存区。
还没有生成正式版本。
git commit
git commit -m "修改说明"
意思:
把暂存区的内容正式保存成一个本地 Git 提交。
这时候已经有版本记录,但还只在自己的电脑。
git push
git push
意思:
把本地已经 commit 的提交上传到 Gitee。
所以一定记住:
add
↓
准备提交
commit
↓
保存到本地仓库
push
↓
上传到远程仓库
十二、git pull 又是什么?
git pull
可以简单理解成:
把远程仓库的新提交拿下来,并整合进当前本地分支。
所以多人协作经常会看到:
先 pull
再修改
再 add
再 commit
再 push
十三、为什么 push 会失败?
- Permission denied (publickey)
一般是 SSH 认证问题。
检查:
ssh -T git@gitee.com
以及:
- 公钥是否添加到正确 Gitee 账号
- .pub 内容是否复制完整
- 本地私钥是否存在
- remote origin already exists
说明:
origin 已经存在
先看:
git remote -v
想修改:
git remote set-url origin 新地址
不需要重复:
git remote add origin ...
- push 被拒绝,提示远程有本地没有的提交
一般代表:
远程仓库已经比你的本地更新
先:
git pull
根据提示解决可能出现的冲突,再:
git push
这也是为什么:
本地已经有项目时,新建 Gitee 仓库推荐先建"空仓库"。
可以减少第一次上传时的麻烦。
- HTTPS 提示账号或密码错误
如果 Gitee 当前要求使用私人令牌认证,不要把普通登录密码当成 Git 推送密码。
根据 Gitee 当前账号设置生成私人令牌,然后在 HTTPS 身份验证时按平台提示使用。
十四、不要随便使用 git push -f
网上经常看到:
git push -f
-f 是:
--force
强制推送
它可能直接覆盖远程分支历史(例如我之前在放笔记的文件夹把本文件夹内容传上仓库,但是我那个仓库之前都是用来装重要的代码的😭)
对于新手和多人项目:
不要把 git push -f 当成解决 push 失败的万能方法。
遇到 push 被拒绝,应该先弄清楚为什么,例如是不是分支不对版:
git status
git pull
然后正确处理远程更新或冲突。
十五、Git GUI 要不要学?
Git GUI、IDE 图形界面当然可以使用。
例如某些工具可以直接:
扫描修改
↓
加入暂存区
↓
填写提交说明
↓
Commit
↓
Push
图形界面只是把 Git 命令做成了按钮。
建议新手至少先理解这些命令:
git status
git add .
git commit -m "说明"
git pull
git push
这样以后换 VS Code、IDEA、WebStorm、Git GUI 等工具时,也知道背后到底发生了什么。
十六、新手最推荐的完整流程
第一次配置电脑
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
ssh-keygen -t ed25519 -C "Gitee"
然后:
复制 id_ed25519.pub
↓
添加到 Gitee SSH 公钥
↓
测试
ssh -T git@gitee.com
这些通常只需要配置一次。
本地已有项目,第一次上传 Gitee
先在 Gitee 创建空仓库。
然后:
git remote add origin git@gitee.com:命名空间/仓库名.git
git init
git add .
git commit -m "初始化项目"
git push origin master
如果你的仓库主分支不是 master,请替换成实际分支名git branch --show-current可查看。
以后日常更新
git add .
git commit -m "写清楚本次修改内容"
git push origin master
这几条就是新手最需要熟练掌握的核心流程。
十七、核心要点总结
最后把整篇文章压缩成几句话:
- Git 管本地版本,Gitee 保存远程仓库并提供协作功能。
- git config user.name / user.email 是提交身份,不是登录密码。
- SSH 中公钥上传 Gitee,私钥只留在自己电脑,绝对不能泄露。
- 新建 SSH Key 时,普通用户优先使用 Ed25519;RSA 仍然可以使用,不要把 RSA 和旧的 ssh-rsa SHA-1 签名混为一谈。
- 本地已有项目准备第一次上传时,Gitee 最好先创建空仓库。
- 没有 origin 用 git remote add origin,已经存在则用 git remote set-url origin。
- git add 是准备提交,git commit 是保存本地版本,git push 才是上传 Gitee。
- 多人协作养成先同步远程代码的习惯。
- 分支不一定叫 master,也不一定叫 main,用 git branch --show-current 查看自己的实际分支。
- 不要把私人令牌直接写进远程 URL,也不要把 git push -f 当成普通解决办法。
十八、一张流程图记住全部
第一次配置电脑
│
├─ 安装 Git
│
├─ git config 配置提交身份
│
├─ ssh-keygen 生成 SSH Key
│
├─ 公钥上传 Gitee
│
└─ ssh -T 测试
↓
配置完成
日常开发
│
├─ git pull
│
├─ 修改代码
│
├─ git status
│
├─ git add .
│
├─ git commit -m "修改说明"
└─ git push
↓
Gitee 更新完成