git 如何免密提交之 基于 Gitee 的 SSH 配置教程

1. 安装git

在Windows上安装Git,我们需要先把Git的安装包下载下来,访问网址:

https://git-scm.com/download/win

点击Download开始下载,下载完成后双击安装包进行安装,之后一直点击"下一步"就可以完成安装了。

下载完成后,双击安装包进行安装。安装过程中大多数选项保持默认即可,一直点击"Next",最后点击"Install"。

安装完成后,在桌面或任意文件夹中右键,如果能看到:
Git Bash Here
Git GUI Here

说明 Git 安装成功。

也可以打开 Git Bash,输入:

bash 复制代码
git --version

如果能看到类似:

bash 复制代码
git version 2.xx.x.windows.x

说明 Git 已经正常安装。

2. 配置 Git 用户信息

Git 安装完成后,需要先配置用户名和邮箱。

打开 Git Bash,输入:

c 复制代码
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

查看是否配置成功:

bash 复制代码
git config --global user.name
git config --global user.email

注意:这里的用户名和邮箱主要用于记录提交作者信息,不等于 Gitee 的登录账号,也不代表你已经有仓库权限。

3. 为什么每次 push 都要输入密码

如果你的远程仓库地址是 HTTPS 格式:

bash 复制代码
https://gitee.com/用户名/仓库名.git

那么在提交代码时,Git 可能会要求你输入账号和密码,或者输入私人令牌 Token。

如果想实现免密推送,推荐使用 SSH 方式。

SSH 地址一般长这样:

bash 复制代码
git@gitee.com:用户名/仓库名.git

简单来说:

HTTPS:使用账号 + 密码 / Token 认证

SSH:使用公钥 + 私钥认证

我们要实现免密提交,就需要配置 SSH。

4. 生成 SSH 密钥

在 Git Bash 中输入:

bash 复制代码
ssh-keygen -t rsa #老算法,兼容性好,但密钥更长
ssh-keygen -t ed25519 -C "你的邮箱或备注" #新算法,更短、更快、安全性也很好

执行后会出现几次提示,直接一路回车即可。

如果看到类似内容:

bash 复制代码
Your identification has been saved in /c/Users/xxx/.ssh/id_ed25519
Your public key has been saved in /c/Users/xxx/.ssh/id_ed25519.pub

说明 SSH 密钥生成成功。

这里会生成两个文件:

id_ed25519 私钥,保存在自己电脑上,不能泄露

id_ed25519.pub 公钥,需要配置到 Gitee

5. 查看并复制 SSH 公钥

继续在 Git Bash 中输入:

bash 复制代码
cat ~/.ssh/id_rsa.pub
cat ~/.ssh/id_ed25519.pub

会输出一长串内容,大概长这样:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIxxxxxxxxxxxxxxxx

3324357875@qq.com

把这一整行复制下来。

注意:一定要复制完整,从 ssh- 开始,到最后的邮箱或备注结束。

6. 在 Gitee 添加 SSH 公钥

登录 Gitee 后,点击右上角头像,进入:

设置 → 安全设置 → SSH 公钥

点击"添加公钥"。

标题可以随便写,例如:

hqrj

公钥内容粘贴刚才复制的内容:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIxxxxxxxxxxxxxxxx

3324357875@qq.com

然后点击确定。

这样 Gitee 就认识你这台电脑了。

7. 测试 SSH 是否配置成功

回到 Git Bash,输入:

bash 复制代码
ssh -T git@gitee.com

第一次连接时,可能会出现:

Are you sure you want to continue connecting?

输入:

bash 复制代码
yes

如果看到类似:

Hi 用户名! You've successfully authenticated, but GITEE.COM does not

provide shell access.

说明 SSH 配置成功。

这里的:

does not provide shell access

不是报错,它只是说明 Gitee 不提供 SSH 登录服务器的功能,但是 Git 认证已经成功。

8. 使用 SSH 地址克隆仓库

进入 Gitee 仓库页面,点击"克隆/下载",选择 SSH 地址。

在本地选择一个目录,打开 Git Bash,执行:

bash 复制代码
git clone git@gitee.com:用户名/仓库名.git

克隆完成后进入项目目录:

bash 复制代码
cd 目录

9. 如果之前已经用 HTTPS 克隆了怎么办

如果你之前是用 HTTPS 克隆的仓库,也不用重新下载项目,可以直接修改远程地址。

先查看当前远程地址:

bash 复制代码
git remote -v

如果看到:

bash 复制代码
origin  https://gitee.com/用户名/仓库名.git (fetch)
origin  https://gitee.com/用户名/仓库名.git (push)

说明当前使用的是 HTTPS。

把它改成 SSH:

bash 复制代码
git remote set-url origin git@gitee.com:用户名/仓库名.git

例如:

bash 复制代码
git remote set-url origin git@gitee.com:shimoyaya/ling-pengyan.git

再次查看:

bash 复制代码
git remote -v

如果变成:

bash 复制代码
origin  git@gitee.com:shimoyaya/ling-pengyan.git (fetch)
origin  git@gitee.com:shimoyaya/ling-pengyan.git (push)

说明远程地址已经切换成 SSH。

之后再 push 就不会弹出账号密码了。

10. Git 提交代码的基本流程

修改代码后,先查看当前状态:

bash 复制代码
git status

把修改的文件加入暂存区:

bash 复制代码
git add .

提交到本地仓库:

bash 复制代码
git commit -m "提交说明"

例如:

bash 复制代码
git commit -m "新增链表增删改查代码"

推送到远程仓库:

bash 复制代码
git push origin master

如果你的分支不是 master,比如当前分支是 lpy-IO-4.30,就执行:

bash 复制代码
git push origin lpy-IO-4.30

如果是第一次推送当前分支,推荐加上 -u:

bash 复制代码
git push -u origin lpy-IO-4.30

以后再推送这个分支,只需要:

bash 复制代码
git push

11. 常用命令解释

查看当前仓库状态:

bash 复制代码
git status

查看当前分支:

bash 复制代码
git branch

查看当前分支名称:

bash 复制代码
git branch --show-current

查看远程仓库地址:

bash 复制代码
git remote -v

添加所有修改:

bash 复制代码
git add .

提交代码:

bash 复制代码
git commit -m "提交说明"

推送代码:

bash 复制代码
git push

拉取远程最新代码:

bash 复制代码
git pull

切换分支:

bash 复制代码
git checkout 分支名

创建并切换到新分支:

bash 复制代码
git checkout -b 新分支名

12. 如果是 Fork 仓库并提交 Pull Request

有些团队项目不能直接 push 到主仓库,需要先 Fork 到自己的账号下。

大致流程是:

  1. Fork 团队仓库到自己的 Gitee 账号
  2. 克隆自己的仓库到本地
  3. 新建分支
  4. 修改代码
  5. 提交并推送到自己的仓库
  6. 在 Gitee 上创建 Pull Request
  7. 等待老师或管理员合并

推荐不要直接在 master 分支上写作业,可以为每次任务单独创建分支:

bash 复制代码
git checkout -b lpy-IO-4.30

提交后推送:

bash 复制代码
git add .
git commit -m "IO复习笔记"
git push -u origin lpy-IO-4.30

然后在 Gitee 页面新建 Pull Request。

源分支选择:

自己的仓库:lpy-IO-4.30

目标分支选择:

老师或团队仓库:master

这样老师才能看到你的代码并进行合并。

13. 常见问题

问题一:SSH 测试成功,但是 push 失败

如果执行:

bash 复制代码
ssh -T git@gitee.com

显示成功,但是 push 时提示:

bash 复制代码
Access denied

说明 SSH 本身没有问题,而是你的 Gitee 账号没有这个仓库的写入权限。

解决方法:

  1. 确认当前仓库是不是自己的仓库
  2. 如果是团队仓库,需要管理员把你的账号加入项目成员
  3. 如果没有权限,可以先推送到自己的 Fork 仓库,再提交 Pull Request

问题二:还是弹出账号密码

先查看远程地址:

bash 复制代码
git remote -v

如果还是:

bash 复制代码
https://gitee.com/用户名/仓库名.git

说明你还在使用 HTTPS。

改成 SSH:

bash 复制代码
git remote set-url origin git@gitee.com:用户名/仓库名.git

再执行:

bash 复制代码
git push

问题三:提示当前分支没有 upstream

如果出现类似:

bash 复制代码
The current branch xxx has no upstream branch

说明当前分支还没有和远程分支建立关联。

执行:

bash 复制代码
git push -u origin 当前分支名

例如:

bash 复制代码
git push -u origin lpy-IO-4.30

之后再 push 就可以直接使用:

bash 复制代码
git push

问题四:提交时提示没有配置用户名和邮箱

如果出现:

bash 复制代码
Please tell me who you are

说明没有配置 Git 用户信息。

执行:

bash 复制代码
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

14. 总结

Windows 下 Git 免密提交的核心步骤是:

  1. 安装 Git
  2. 配置 Git 用户名和邮箱
  3. 生成 SSH 密钥
  4. 把 SSH 公钥添加到 Gitee
  5. 测试 SSH 连接
  6. 使用 SSH 地址克隆或修改远程地址
  7. 正常 git add、git commit、git push

最关键的是这一步:

bash 复制代码
git remote -v

如果远程地址是:

bash 复制代码
https://gitee.com/xxx/xxx.git

说明使用的是 HTTPS,可能会要求输入账号密码。

如果远程地址是:

bash 复制代码
git@gitee.com:xxx/xxx.git

说明使用的是 SSH,配置成功后就可以免密提交。

相关推荐
火车叼位2 小时前
用脚本固化 Git Squash 合并与文件排除流程
git
wunaiqiezixin4 小时前
git常用命令总结
git
Pluchon9 小时前
萌萌技术分享笔记——Java综合项目
java·开发语言·笔记·git·github·mybatis·postman
九思x10 小时前
Git脚本汇总
git
jiayong2310 小时前
git分支合并的切换逻辑详解
git
思麟呀10 小时前
Git入门
git
Ws_10 小时前
Git + Gerrit 第八课:reset 与 revert 撤销提交
git
Qres82110 小时前
hexo博客上传github page
git·github·hexo
繁星星繁11 小时前
Git 入门之道:从版本流转到基础操作
大数据·git·elasticsearch
wh_xia_jun1 天前
Git 分支合并操作备忘录
git