在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版本不同可能影响命令中的默认本地分支名称。

相关推荐
Doro再努力1 天前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene1 天前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
忧郁的橙子.1 天前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧1 天前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮1 天前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu
XiaoFan0121 天前
免密批量抓取日志并集中输出
java·linux·服务器
souyuanzhanvip1 天前
ServerBox v1.0.1316 跨平台 Linux 服务器管理工具
linux·运维·服务器
胖虎11 天前
Git 一个本地仓库同时推送到两个远程仓库(详细教程)
git·多远程仓库·双远程仓库·git双远程·git备份
HalvmånEver1 天前
Linux:线程互斥
java·linux·运维
番茄灭世神1 天前
Linux应用编程介绍
linux·嵌入式