当前位置: 首页 > news >正文

Git的一些使用

目录

    • 下载
    • 安装
    • 命令
      • 配置用户名和邮箱
      • 连接远程仓库
        • 1. 检查是否已有 SSH 密钥
        • 2. 生成新的 SSH 密钥
        • 3. 将公钥添加到远程仓库
        • 4. 配置 Git 使用 SSH
      • 可能遇到的问题
        • 方法 1:永久解决方案(修改 SSH 配置)
        • 方法 2:更新服务器密钥(推荐)

下载

官方下载:下载地址
Git 是一个跨平台的分布式版本控制系统,支持在 Windows、macOS 和 Linux 等多个操作系统上运行。

安装

参考:Git安装(保姆教程)

命令

配置用户名和邮箱

git config --global user.name "用户名"
git config --global user.email "邮箱"

连接远程仓库

1. 检查是否已有 SSH 密钥

在终端(Windows 用 Git Bash 或 WSL)运行:

ls ~/.ssh

如果看到 id_rsa(私钥)和 id_rsa.pub(公钥),说明已有密钥,可跳过生成步骤。

2. 生成新的 SSH 密钥

运行以下命令(替换邮箱为你的账号邮箱):

ssh-keygen -t ed25519 -C "邮箱"

-t ed25519:使用更安全的 Ed25519 算法(推荐)。
如果系统不支持,改用 RSA

ssh-keygen -t rsa -b 4096 -C "邮箱"

按提示操作:

直接回车使用默认路径(~/.ssh/id_ed25519 或 ~/.ssh/id_rsa)。

设置密钥密码(可选,增加安全性)。

3. 将公钥添加到远程仓库

复制公钥内容

cat ~/.ssh/id_ed25519.pub  # 或 id_rsa.pub

复制输出的全部内容(以 ssh-ed25519 或 ssh-rsa 开头)。

添加到远程仓库
GitHub:Settings → SSH and GPG keys → New SSH key → 粘贴公钥。
GitLab:Preferences → SSH Keys → 粘贴公钥。
Gitee:设置 → SSH 公钥 → 粘贴公钥。

4. 配置 Git 使用 SSH

检查远程仓库地址
确保远程仓库地址是 SSH 格式(非 HTTPS):

git remote -v

如果显示 HTTPS 地址(如 https://github.com/…),需修改为 SSH:

git remote set-url origin git@github.com:username/repo.git

(替换 username/repo 为你的仓库路径)

测试 SSH 连接

ssh -T git@github.com  # GitHub
ssh -T git@gitlab.com  # GitLab

如果看到 You’ve successfully authenticated,说明配置成功。

可能遇到的问题

Unable to negotiate with xxxx port xxxx: no matching host key type found. Their offer: ssh-rsa,ssh-dss fatal: Could not read from remote repository.

这个错误是由于 Git 客户端和 SSH 服务器之间的主机密钥类型不匹配导致的。具体来说,你的 SSH 客户端拒绝了服务器提供的 ssh-rsa 和 ssh-dss 密钥类型,认为它们不够安全。

以下是几种解决方法:

方法 1:永久解决方案(修改 SSH 配置)

打开或创建 SSH 配置文件:

nano ~/.ssh/config

添加以下内容:

Host *HostkeyAlgorithms +ssh-rsaPubkeyAcceptedKeyTypes +ssh-rsa
方法 2:更新服务器密钥(推荐)

最好的解决方案是让服务器管理员更新 SSH 主机密钥,使用更安全的密钥类型(如 ecdsa 或 ed25519)。

http://www.dtcms.com/a/292683.html

相关文章:

  • Vue3 面试题及详细答案120道(31-45 )
  • API网关原理与使用场景详解
  • java学习 leetcode31 下一个排列
  • C语言:第11天笔记
  • ansible 批量 scp 和 load 镜像
  • Spring之【Bean工厂后置处理器】
  • PHP 8.0 超维意识编程终极指南(终篇)终极展望:PHP与宇宙意识融合跨维度架构模式超弦控制器增强版(1)
  • 最新植物大战僵尸杂交版最新版本2.5.1版,内置触屏+加速+全屏,附PC+安卓+iOS最全安装教程!
  • 阶段1--Linux中的文件服务器(FTP、NAS、SSH)
  • 前端_Javascript复习
  • 【C++】第十八节—一文万字详解 | map和set的使用
  • 网络安全第三次作业
  • Java学习第六十六部分——分布式系统架构
  • days32 :零基础学嵌入式之网络2.0
  • Coze智能体工作流:3分钟批量生成连贯人物一致的治愈图文
  • 远程调用图形浏览器(X11 转发)在 CentOS 7 上的安装操作
  • CentOS 7 安装nginx
  • 【LINUX】Centos 9使用nmcli更改IP
  • SpringBoot6-10(黑马)
  • linux-计划任务
  • 如何排查服务器 CPU 飙高
  • 本地大模型VRAM需求计算器:原理与实现详解
  • Spring Boot音乐服务器项目-上传音乐模块
  • [vue3] 自定义组件的v-model
  • Android ViewModel 深度解析:原理、使用与最佳实践
  • Android 中 实现日期选择功能(DatePickerDialog/MaterialDatePicker)
  • “鱼书”深度学习入门 笔记(2)第五章
  • MoonBit Meetup 杭州站丨 探讨AI基础软件的精彩回顾
  • API是什么,如何保障API安全?
  • 解决flex布局的元素高度超出父元素高度