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

GitHub 项目提交完整流程(含常见问题与解决办法)

一、前提条件

  1. 本地已安装 Git。

  2. 已有 GitHub 账号。

  3. 本地项目已经有代码(可以是新建的项目或已有项目)。

没有这些的可以看我之前的文章去配置https://blog.csdn.net/2401_83607690/article/details/149034923?spm=1001.2014.3001.5502


二、步骤一:生成 SSH Key(推荐国内稳定使用)

在 Git Bash 中执行:

ssh-keygen -t ed25519 -C "你的GitHub邮箱"
  • 一路回车使用默认路径(~/.ssh/id_ed25519

  • passphrase 可以留空

生成结果:

  • 私钥:id_ed25519(不要泄露!)

  • 公钥:id_ed25519.pub

复制公钥到 GitHub

  1. 打开 GitHub → Settings → SSH and GPG keys → New SSH key

  2. Title:随便写,比如 VSCode

  3. Key:打开公钥文件复制内容:

cat ~/.ssh/id_ed25519.pub
  1. Add SSH key


三、步骤二:添加远程仓库(SSH over 443 推荐)

cd /你的项目目录
git init                # 如果本地还没有 git 仓库
git remote add origin ssh://git@ssh.github.com:443/你的用户名/仓库名.git
  • ssh://git@ssh.github.com:443/... 使用 443 端口可以避免国内网络屏蔽 22 端口的问题

查看远程仓库是否成功:

git remote -v

输出应为:

origin  ssh://git@ssh.github.com:443/用户名/仓库名.git (fetch)
origin  ssh://git@ssh.github.com:443/用户名/仓库名.git (push)

四、步骤三:添加本地代码到 Git 并提交

git add .                     # 添加当前目录所有文件
git commit -m "第一次提交"     # 提交到本地仓库
  • git status 可以随时查看修改状态


五、步骤四:加载 SSH Key 并推送

eval $(ssh-agent -s)          # 启动 SSH agent
ssh-add ~/.ssh/id_ed25519      # 添加私钥
ssh -T git@ssh.github.com -p 443  # 测试 SSH 连接
  • 如果显示:

Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.

说明 SSH 配置成功。

推送到 GitHub:

git push -u origin master      # 如果本地分支是 master
# 或者 git push -u origin main
  • -u 关联本地分支和远程分支,后续直接 git push 就行


六、常见错误与解决办法

错误信息原因解决方法
error: src refspec main does not match any本地没有 main 分支git branch 查看分支,使用实际分支名推送(如 master
error: No such remote 'origin'本地没有远程仓库git remote add origin <仓库URL> 添加远程
Failed to connect to github.com port 443HTTPS 被墙或网络问题使用 SSH over 443 或配置代理
ssh: connect to host github.com port 22: Connection timed outSSH 默认端口 22 被阻塞使用 SSH over 443:ssh://git@ssh.github.com:443/...
Permission denied (publickey)SSH key 未添加到 GitHub 或未加载到 agent上传公钥到 GitHub,执行 ssh-add ~/.ssh/id_ed25519

七、后续更新项目流程

  1. 修改代码后:

git add .
git commit -m "本次修改说明"
  1. 推送到 GitHub:

git push
  • 因为分支已经关联远程分支,直接 git push 即可


总结

  • 国内用户推荐用 SSH over 443,稳定且不易被墙

  • GitHub 不再支持账号密码推送,HTTPS 需要 PAT

  • SSH Key 只需添加一次,以后无需每次输入密码

  • 遇到问题时先用 git remote -vgit branchgit status 排查



文章转载自:

http://0hXJEzXs.cmhkt.cn
http://V91DF3jc.cmhkt.cn
http://CQdqFtLn.cmhkt.cn
http://bOYD5fF6.cmhkt.cn
http://2bD9Rh1l.cmhkt.cn
http://p71uIseg.cmhkt.cn
http://BA0f4fp3.cmhkt.cn
http://ZbP9MAhK.cmhkt.cn
http://gASM9A8K.cmhkt.cn
http://xju8CrwA.cmhkt.cn
http://luKedgIY.cmhkt.cn
http://ea7P6Ndz.cmhkt.cn
http://3ruqmg4Q.cmhkt.cn
http://6Y3Q7ytX.cmhkt.cn
http://lTU5bCh8.cmhkt.cn
http://4cYDrNaE.cmhkt.cn
http://ZmVqMb03.cmhkt.cn
http://gjRVZ3LY.cmhkt.cn
http://NJKFKIec.cmhkt.cn
http://qpuqbIOg.cmhkt.cn
http://N7C18kjX.cmhkt.cn
http://MKX8gBVF.cmhkt.cn
http://PnifHLzG.cmhkt.cn
http://CEuTYRCL.cmhkt.cn
http://y3pC0alA.cmhkt.cn
http://ymKQwqb7.cmhkt.cn
http://UByenxLm.cmhkt.cn
http://RTfULwvI.cmhkt.cn
http://GJzZ3L8A.cmhkt.cn
http://n8259zhh.cmhkt.cn
http://www.dtcms.com/a/375827.html

相关文章:

  • Day39 SQLite数据库操作与文本数据导入
  • python常用命令
  • 广东省省考备考(第九十五天9.9)——言语、资料分析、判断推理(强化训练)
  • MySQL问题8
  • 【AI】Jupyterlab中关于TensorFlow版本问题
  • Java 运行时异常与编译时异常以及异常是否会对数据库造成影响?
  • CosyVoice2简介
  • 新机快速搭建java开发环境过程记录
  • std::enable_shared_from_this
  • Spring Boot--Bean的扫描和注册
  • Pytorch基础入门3
  • ARM-指令集全解析:从基础到高阶应用
  • ARM 汇编学习
  • 今天继续昨天的正则表达式进行学习
  • Mysql集群——MHA高可用架构
  • 【一包通刷】晶晨S905L(B)/S905L2(B)/S905L3(B)-原机安卓4升级安卓7/安卓9-通刷包
  • SYSTEM 提权面板:提升文件运行权限的高效工具
  • 【Python】S1 基础篇 P6 用户交互与循环控制:构建动态交互程序
  • Java 数据类型详解
  • java常见SSL bug解决方案
  • JAVA stream().flatMap()
  • 【C++】string类 - 库中的常见使用
  • Go语言基础---数据类型间的故事
  • 金融量化指标--6InformationRatio信息比率
  • GPT Server 文档
  • CDN加速带来的安全隐患及应对方法
  • HCL Unica+:AI驱动的营销自动化与个性化平台
  • spring事务管理之@Transactional
  • golang之go modules
  • 设计UIUC SE 423机电一体化的机器人