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

在Ubuntu24.04中使用ssh连接本地git仓库到github远程仓库

本人在Windows11系统和WSL-Ubuntu24.04系统中均已操作成功,下面简单分享下流程。

环境:WSL-Ubuntu24.04或Windows11  git2.50.1

以下命令皆在Git Bash中执行。

1.设置git:
git config --global user.name "github用户名"
git config --global user.email "注册github的邮箱地址"

2.生成ssh密钥(ssh密钥本身与git或github没有任何关系):
ssh-keygen -t rsa -C "注册github的邮箱地址"
生成的密钥保存在C:/用户/用户名/.ssh,Ubuntu系统中为home\用户名\.ssh。
打开id_rsa.pub,复制全部。

3.配置github的ssh连接:
github->账户->setting->SSH and GPGkeys->New SSH key
输入Title,将id.rsa.pub中的内容粘贴到Key中
点击Add SSH Key

4.测试SSH连接:
ssh -T git@github.com
若输出的最后一行为
Hi github用户名! You've successfully authenticated, but GitHub does not provide shell access.
则本地git客户端和远程github建立ssh连接成功。but GitHub does not provide shell access 不是错误,不用管它。

5.在Git Bash中cd到要创建本地仓库的目录。确保当前目录下没有.git目录,且当前目录的子目录下都没有.git目录。

6.创建本地git仓库:在当前目录下git init,会生成.git目录
(现在就已经可以使用clone命令克隆项目了)

7.添加当前目录下全部文件到本地仓库:git add .【如果当前目录的子目录中有.git目录则可能不能添加成功,可以删除子目录中的.git目录后重试】

8.提交到本地仓库:git commit -m "注释"

9.查看本地分支:git status,会输出On branch main。main是最新版git(我使用的是2.50.1)的默认本地分支名称,Git Bash中$符号前面的(main)指的就是当前本地分支。

10.查看远程仓库及其分支:git remote -v,若没有添加远程仓库则不输出任何内容,若已添加远程仓库则输出类似
origin  git@github.com:用户名/仓库名.git (fetch)
origin  git@github.com:用户名/仓库名.git (push)

11.添加远程仓库(若上一步有正常输出则可选择跳过此步):git remote add 远程仓库别名 远程仓库地址,约定俗成把远程仓库别名设置为origin(你也可以自定义其他名称),例如git remote add origin git@github.com:qwerwsad/uiopikjl.git
注意命令中的英文冒号:不能写成斜杠。

12.推送本地内容到远程仓库:git push -u 远程仓库别名 本地分支名,例如git push -u origin main,成功后输出内容如下:
Enumerating objects: 39, done.
Counting objects: 100% (39/39), done.
Delta compression using up to 16 threads
Compressing objects: 100% (38/38), done.
Writing objects: 100% (39/39), 94.95 KiB | 230.00 KiB/s, done.
Total 39 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (1/1), done.
To github.com:ymhnwpu/win11.git
* [new branch]      main -> main
branch 'main' set up to track 'origin/main'.

13.在Ubuntu-24.04系统下,如果git status后显示类似
fatal: detected dubious ownership in repository at '//wsl.localhost/Ubuntu-24.04/home/qwer/Git/ub24'
To add an exception for this directory, call:
git config --global --add safe.directory '%(prefix)///wsl.localhost/Ubuntu-24.04/home/qwer/Git/ub24'
【这时候你的Git Bash中$符号前面应该是没有本地分支名称(main)的】
则问题原因是本地仓库目录的所有权与当前用户不匹配。最简单的解决方法为git config --global --add safe.directory "."
然后$符号前面就会出现本地分支名称(main),且再次git status后会正确显示本地分支。

ps:git版本不同可能影响命令中的默认本地分支名称。

http://www.lryc.cn/news/619350.html

相关文章:

  • C++QT HTTP与HTTPS的使用方式
  • 【网络安全测试】OWASP ZAP web安全测试工具使用指导及常用配置(有关必回)
  • Spring事务管理实战:从注解到进阶
  • Spring 源码学习(十)—— DispatcherServlet
  • 【一步AI】模型压缩:减小模型体积与计算量
  • YOLOv8 级联检测:在人脸 ROI 内检测眼镜(零改源码方案)
  • 第十六届蓝桥杯青少组C++省赛[2025.8.9]第二部分编程题(1 、庆典队列)
  • Excel怎么筛选重复项?【图文详解】查找/删除重复项?查找重复项公式?如何去重?
  • [QtADS]解析demo.pro
  • HarmonyOS NDK的JavaScript/TypeScript与C++交互机制
  • Electron自定义菜单栏及Mac最大化无效的问题解决
  • XML头部声明发送者信息的实现方法
  • C# 微软依赖注入 (Microsoft.Extensions.DependencyInjection) 详解
  • CV 医学影像分类、分割、目标检测,之【肝脏分割】项目拆解
  • windows常用的快捷命令
  • 机器学习实战·第三章 分类(2)
  • docker 容器内编译onnxruntime
  • git clone 支持在命令行临时设置proxy
  • CV 医学影像分类、分割、目标检测,之【腹腔多器官语义分割】项目拆解
  • 何解决PyCharm中pip install安装Python报错ModuleNotFoundError: No module named ‘json’问题
  • Video_AVI_Packet(2)
  • 基于RTSP|RTMP低延迟视频链路的多模态情绪识别系统构建与实现
  • 日志数据链路的 “搬运工”:Flume 分布式采集的组件分工与原理
  • 进阶向:Python编写自动化邮件发送程序
  • Jenkins一直无法启动,怎么办?
  • 论文分享 | Flashboom:一种声东击西攻击手段以致盲基于大语言模型的代码审计
  • 守拙以致远:个人IP的长青之道|创客匠人
  • Hive 创建事务表的方法
  • 自建知识库,向量数据库 体系建设(四)之文本向量与相似度计算——仙盟创梦IDE
  • java中list的api详细使用