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

将本地仓库推送到GitHub

一、Git全局账号配置

在终端中设置与GitHub关联的用户身份:

  1. 配置用户名与邮箱(提交时显示的身份):

    git config --global user.name "Your GitHub Username"
    git config --global user.email "your_email@example.com"  # 需与GitHub注册邮箱一致
    
    • 此配置仅标识本地提交者身份,与GitHub登录凭证无关。

二、SSH密钥生成与绑定

通过SSH密钥实现免密认证(推荐):

2.1 生成密钥对(支持Ed25519或RSA算法):

ssh-keygen -t ed25519 -C "your_email@example.com"  # Ed25519更安全高效
# 若系统不支持Ed25519,改用:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 按提示选择密钥保存路径(默认 ~/.ssh/id_ed25519
  • 设置密钥密码(可选,增强安全性)。

2.2 添加公钥到GitHub账户

  • 复制公钥内容

    cat ~/.ssh/id_ed25519.pub  # 显示内容后手动复制
    
  • GitHub网页端操作

    • 进入 SettingsSSH and GPG KeysNew SSH Key
    • 填写自定义标题(如 My Laptop),粘贴公钥内容。
  1. 密钥算法选择建议
    算法类型命令示例适用场景
    Ed25519ssh-keygen -t ed25519 -C "邮箱"新系统首选(安全性高)
    RSA 4096ssh-keygen -t rsa -b 4096 -C "邮箱"兼容旧系统

三、测试SSH连接

验证密钥是否生效(可能要重启终端):

ssh -T git@github.com
  • 首次连接需确认指纹,输入 yes
  • 成功响应
    Hi username! You've successfully authenticated...

四、仓库配置与推送

4.1 新仓库克隆(直接使用SSH协议)

本地还没有项目代码的情况下

# 拉取远程仓库
git clone git@github.com:username/repo.git# 推送到远程仓库(后续可以简写git push)
git push -u origin main
# -u 参数将本地分支与远程分支关联,后续推送可简化为 git push

4.2 现有仓库切换协议(从HTTPS改为SSH)

本地已有项目代码,而GitHub仓库为空的情况。

# 添加远程仓库(首次设置远程仓库链接)
git remote add origin git@github.com:username/repo.git
git remote -v              # 验证URL是否更新
git branch -M main       # 强制分支重命名main
git push -u origin main  # 推送到远程仓库(若分支为master则替换为master)# 设置远程仓库(已添加过远程仓库链接)
git remote set-url origin git@github.com:username/repo.git
git remote -v

4.3 分支重命名(可选)

步骤 1:重命名本地分支mastermain

# 确保当前在 master 分支(* master)
git branch -m master main    # 重命名当前分支为 main
  • -m 参数表示移动/重命名分支[citation:5][citation:11]。

步骤 2:推送 main 分支到远程仓库

# 首次推送需建立跟踪关系
git push -u origin main      # 推送本地 main 分支,并设置上游跟踪
  • -u 参数关联远程分支,后续可直接用 git push

步骤 3:删除远程的 master 分支(可选)

若远程不需要 master 分支,避免混淆:

git push origin --delete master  # 删除远程 master 分支
http://www.lryc.cn/news/577155.html

相关文章:

  • 【Pandas】pandas DataFrame attrs
  • 2025年光学工程、精密仪器与光电子技术国际会议(OEPIOT 2025)
  • 【MCP服务】蓝耘元生代 | 蓝耘MCP平台来袭!DeepSeek MCP服务器玩转大模型集成
  • Python-Word文档、PPT、PDF以及Pillow处理图像详解
  • 车载ECU刷写文件格式汇总详解
  • 博图SCL编程:结构体(STRUCT)使用详解与实战案例
  • .net实现内容推荐算法代码
  • C++ --- list
  • ES6笔记1
  • ES6从入门到精通:箭头函数
  • 【PHP】.Hyperf 框架-collection 集合数据(内置函数归纳-实用版)
  • uniapp小程序蓝牙打印通用版(集成二维码打印)
  • Day113 切换Node.js版本、多数据源配置
  • 服务器被入侵的常见迹象有哪些?
  • AdGuard Home 安装及使用
  • SimLOD代码精读(二)建立Octree之Splitting Pass分裂阶段
  • 永磁同步电机无速度算法--基于带相位补偿的鉴相重构锁相环的滑模观测器
  • 华为云Flexus+DeepSeek征文 | 基于华为云Dify-LLM搭建知识库问答助手
  • 深入解析TCP:可靠传输的核心机制与实现逻辑
  • LaTeX 常用宏包(数学论文场景)
  • MySQL索引失效场景
  • NLP自然语言处理 01 文本预处理
  • 现代 JavaScript (ES6+) 入门到实战(三):字符串与对象的魔法升级—模板字符串/结构赋值/展开运算符
  • 【c/c++1】数据类型/指针/结构体,static/extern/makefile/文件
  • 【c/c++3】类和对象,vector容器,类继承和多态,systemd,stdboost
  • PCB工艺学习与总结-20250628
  • 【blender】使用bpy对一个obj的不同mesh进行不同的材质贴图(涉及对bmesh的操作)
  • 利用deepseek学术搜索
  • git lfs 提交、拉取大文件
  • 现代 JavaScript (ES6+) 入门到实战(五):告别回调地狱,Promise 完全入门