通过SSH来推送本地文件夹到Github

配置SSH

git使用SSH配置, 初始需要以下三个步骤

使用秘钥生成工具生成rsa秘钥和公钥
将rsa公钥添加到代码托管平台
将rsa秘钥添加到ssh-agent中,为ssh client指定使用的秘钥文件
具体操作如下:

第一步:检查本地主机是否已经存在ssh key

cd ~/.ssh
ls
//看是否存在 id_rsa 和 id_rsa.pub文件,如果存在,说明已经有SSH Key

如下图所示,则表明已经存在

image-20250907201841055

如果存在,直接跳到第三步

第二步:生成ssh key

如果不存在ssh key,使用如下命令生成

ssh-keygen -t rsa -C “xxx@xxx.com”
//执行后一直回车即可

第三步:获取ssh key公钥内容(id_rsa.pub)

cd ~/.ssh
cat id_rsa.pub

如下图所示,复制该内容

image-20250907202020719

第四步:Github账号上添加公钥

进入Settings设置

image-20250907202105114

image-20250907202142436

添加ssh key,把刚才复制的内容粘贴上去保存即可

image-20250907202225352

第五步**:测试SSH连接**

在您添加 SSH 密钥之后,您可以测试 SSH 是否正常工作:

ssh -T git@github.com
  • 解释:如果成功连接,您会看到类似以下的消息:

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

    如果出现问题,确保您的公钥正确地添加到 GitHub,并检查是否使用了正确的 SSH 密钥。

本地文件夹上传

要将本地文件夹上传到远程 Git 仓库,您需要遵循以下步骤和命令流程。每个步骤的解释也会帮助您理解为什么要执行这些命令。

步骤 1:初始化本地 Git 仓库

如果您还没有在本地文件夹中初始化 Git 仓库,您可以通过以下命令来初始化:

git init
  • 解释git init 命令会将当前目录(或者指定目录)初始化为一个 Git 仓库,生成 .git 目录并让该目录变成 Git 仓库的一部分。这样,您就可以开始使用 Git 进行版本控制。

步骤 2:查看文件状态

在将文件提交之前,您可以查看当前工作区的状态,看看文件是否被 Git 跟踪:

git status
  • 解释git status 会列出当前工作区和暂存区的文件状态。它会告诉您哪些文件已经修改、哪些文件还没有加入暂存区,哪些是新文件等。

步骤 3:添加文件到暂存区

将本地文件添加到 Git 的暂存区,准备提交:

git add .
  • 解释git add . 会将当前目录下的所有更改(包括新增、修改和删除的文件)添加到暂存区。如果您只想添加某些特定的文件,可以替换 . 为文件名,例如:git add <file-name>

步骤 4:提交更改

将暂存区的文件提交到本地 Git 仓库:

git commit -m "Initial commit"
  • 解释git commit 将暂存区的所有文件(变更)保存到本地仓库的历史记录中,-m 后面跟的是提交的消息,它应该简明地描述您这次提交的内容。

步骤 5:添加远程仓库

如果您还没有将远程仓库与本地仓库关联,您需要使用 git remote add 命令添加远程仓库 URL。您通常可以在 GitHub、GitLab 或 Bitbucket 等平台上创建一个新的仓库,获取仓库的远程 URL。

git remote set-url origin <remote-repository-url>
  • 解释git remote add origin <remote-repository-url> 用于将本地仓库与远程仓库关联,origin 是远程仓库的默认名称,您可以修改为其他名称。如果已经有远程仓库,可以跳过这一步。

例如,如果您在 GitHub 创建了一个名为 my-repo 的仓库,远程仓库 URL 可能是:

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

就是这一个

image-20250907203244058
步骤 6:推送文件到远程仓库

将您的本地提交推送到远程仓库,通常是推送到 mastermain 分支(大部分新的 Git 仓库默认使用 main 分支):

git push -u origin main
  • 解释git push 命令将您的提交推送到远程仓库。-u 参数用于设置默认的上游分支,表示以后可以简化命令,只需执行 git push,而不需要每次指定远程仓库和分支名。
    • origin 是远程仓库的名称。
    • main 是分支的名称。如果远程仓库使用的是 master 分支,请替换为 master

如果您第一次推送到远程仓库,Git 可能会要求您输入 GitHub(或其他平台)上的用户名和密码,或者使用 SSH 密钥进行认证。


步骤 7:后续更新

一旦您成功推送了文件,之后的提交和推送就变得更加简单。对于新的提交,只需要:

  1. 修改或添加文件。

  2. 使用 git add . 将文件添加到暂存区。

  3. 使用 git commit -m "Commit message" 提交更改。

  4. 步骤 4:拉取远程最新更新(关键!避免冲突)

    在推送前,先拉取远程仓库的最新代码,确保本地分支与远程同步:

    git pull origin main
    
    • 如果远程有其他人的新提交,会自动合并到本地(若有冲突,按提示解决后再提交)。
  5. 使用 git push origin main 将更改推送到远程仓库。


总结流程
  1. 初始化本地仓库git init
  2. 查看状态git status
  3. 添加文件到暂存区git add .
  4. 提交文件git commit -m "message"
  5. 添加远程仓库git remote add origin <remote-url>
  6. 推送文件到远程仓库git push -u origin main

这个流程完成了从本地文件夹到远程仓库的上传操作,确保您的本地代码得到有效的版本管理,并能与团队成员共享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/96143.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/96143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频转webp批量处理工具哪个好?这里有答案

你是不是也遇到过这样的困扰&#xff1a;手机里存满了精彩的短视频&#xff0c;想做成动图分享到社交媒体&#xff0c;却发现转换后的GIF文件巨大无比&#xff0c;画质还惨不忍睹&#xff1f;要怎么把手机视频转webp&#xff0c;才能既保持高清画质&#xff0c;又能大幅减小文件…

【Fastjson】Fastjson2 在不同 Modules 模块包下,@JSONField name映射无法反序列化的 BUG 及解决

问题&#xff1a;在使用 alibaba fastjson2 做 JSONField 字段名映射时&#xff0c;在同模块包下 Flink Jar 任务正常映射&#xff0c;本地测试正常映射&#xff0c;但是将两个模块包上传至 Flink Cluster 之后&#xff0c;出现反序列化异常&#xff0c;子模块无法反序列化父模…

Go语言基础---数据类型间的故事

Go语言基础—数据类型间的故事 目录 前言基本数据类型 整形字节特殊整形unsafe.Sizeof数字字面量语法浮点型布尔值字符串byte和rune类型 运算符 算术运算符关系运算符逻辑运算符位运算符赋值运算符 前言 Go语言是Google开发的一种静态强类型、编译型语言。Go语言语法与C相近…

dedecms软件等级★号改成图片图标显示的办法

我们在用到dedecms织梦的软件模型&#xff0c;在调用软件星级的时候&#xff0c;要把默认的星号改为图片&#xff0c;这个要怎么操作呢&#xff1f;1、软件模型管理里面-字段管理-字段配置softrankislink一行改为&#xff1a;<field:softrank itemname软件等级 typeint isnu…

windows下安装claude code+国产大模型glm4.5接入(无需科学上网)

下载安装node.js https://nodejs.org/en/download 安装版.msi 直接下载安装即可 免安装版.zip 1.解压下载的压缩包 2.创建数据缓存存储目录cache和全局安装工具目录global 3.配置环境变量 【我的电脑】右键选中【属性】-> 找到【高级系统设置】-> 右下角【环境变量…

嵌入式 - ARM4

裸机实现LED闪烁一、启动代码1. 异常向量表配置1. .global汇编器指令&#xff0c;全局定义标签_start&#xff0c;作为汇编程序的默认起点2. 配置标签配置标签时可以前置加_ &#xff0c;以便和普通标签或系统标签做区分3. 异常向量表ARM架构规定异常向量表位置固定&#xff0c…

《C++ 108好库》之2 多线程库thread,mutex,condition_variable,this_thread

《C 108好库》之之2 多线程库thread&#xff0c;mutex&#xff0c;condition_variable&#xff0c;this_thread《C 108好库》之2 多线程库thread&#xff0c;mutex&#xff0c;condition_variable&#xff0c;this_threadstd::thread类​​互斥量&#xff08;Mutex&#xff09;…

Android系统框架知识系列(二十):专题延伸:JVM vs ART/Dalvik - Android运行时演进深度解析

​关键词​&#xff1a;运行时优化、AOT编译、JIT编译、内存管理、电池效率、性能分析一、Android运行时演进背景1. 移动环境的特殊挑战Android运行时环境的演进源于移动设备的独特限制&#xff1a;​移动设备约束条件​&#xff1a;​有限的内存资源​&#xff1a;早期设备仅1…

ubuntu 22 安装轻量级桌面Xfce并使用xrdp远程桌面连接

1.安装Xfce:sudo apt install xubuntu-desktop -y2.安装xrdp:sudo apt install xrdp -y3.配置xrdp&#xff0c;nano /etc/xrdp/xrdp.ini:[Globals] ... port3389 ; 远程连接端口&#xff0c;默认是3389&#xff0c;可以改成自己喜欢的端口... ; ; Session types ;; Some sess…

【Flask】测试平台开发,数据看板开发-第二十一篇

概述&#xff1a;在前面我们已经实现了我们的产品创建管理&#xff0c;应用管理管理&#xff0c;需求提测管理但是每周提测了多少需求&#xff0c;创建了哪些产品&#xff0c;我们是不是看着不是很直观&#xff0c;接下来我们就需要开发一个数据看板功能&#xff0c;实现能够看…

我是程序员,不是程序猿:请别把我当猴耍——拒绝被低估,用专业赢得尊重

摘要 本文旨在深度剖析“程序员”与“程序猿”一字之差背后所反映的职业尊严与身份认同问题。我们生活在一个技术驱动的时代&#xff0c;但对技术创造者的认知却常常被“程序猿”、“码农”等标签简单化、甚至矮化。本文将从正名开始&#xff0c;辨析“程序员”的专业内涵&…

C++中vector删除操作的安全隐患与最佳实践

std::vector 是C标准模板库&#xff08;STL&#xff09;中最常用的动态数组容器&#xff0c;提供了高效的随机访问和动态扩容能力。然而&#xff0c;其删除操作如果使用不当&#xff0c;会引入严重的安全隐患&#xff0c;包括未定义行为、内存泄漏和数据竞争等问题。本文将深入…

Unix/Linux 系统中的 `writev` 系统调用

<摘要> 本文对 Unix/Linux 系统中的 writev 系统调用进行了全面深入的解析。内容涵盖了其产生的背景&#xff08;从传统 write 的局限性到分散/聚集 I/O 概念的引入&#xff09;、核心概念&#xff08;如 struct iovec、系统调用流程&#xff09;。重点剖析了其设计意图&…

深入理解 Android targetSdkVersion:从 Google Play 政策到依赖冲突

深入理解 Android targetSdkVersion&#xff1a;从 Google Play 政策到依赖冲突 作为 Android 开发者&#xff0c;你很可能在 Android Studio 中见过这条提示&#xff1a;Google Play requires that apps target API level 33 or higher。它像一个尽职的提醒者&#xff0c;时常…

灰匣(GrayBox)1.0.0 发布【提升系统权限APP】

灰匣是一个提升系统权限的工具&#xff0c;可以配合Root、三方软件&#xff08;Shizuku&#xff09;以及【设备管理员】&#xff08;设备所有者&#xff09;实现一些高级功能及底层接口&#xff0c;可以自动隔离&#xff08;冻结/禁用&#xff09;不必要的应用&#xff0c;如某…

PAT 1104 Sum of Number Segments

这一题的大意就是找一个数组中的所有子数组&#xff0c;它们的累加和为多少&#xff0c; 题目上给出的数据范围是O(n^5)那么只能遍历一次&#xff0c;不能用暴力的方法求出。 看到这一题我有两个思路&#xff1a; 1.试图用双指针和滑动窗口来把O&#xff08;n^2)的时间复杂度降…

[万字长文]AJAX入门-常用请求方法和数据提交、HTTP协议-报文、接口文档、案例实战

本系列可作为前端学习系列的笔记&#xff0c;代码的运行环境是在VS code中&#xff0c;小编会将代码复制下来&#xff0c;大家复制下来就可以练习了&#xff0c;方便大家学习。 HTML、CSS、JavaScript系列文章 已经收录在前端专栏&#xff0c;有需要的宝宝们可以点击前端专栏查…

Codesy中的UDP发送信息

Codesy UDP通讯 概述 CAA Net Base Services UDP通讯的建立 发送UDP 状态控制 效果 概述 Codesys中默认安装的通讯支持很多,不安装其他的软件也可以实现TCP通讯。但是,在使用UDP通讯时,因为我们的PLC有两个网卡,一般我们把第一个网口做编程和HMI用,把的个网口做外部通讯,…

神经网络之深入理解偏置

&#x1f50d; 1. 表达能力&#xff1a;无偏模型不能表示全体函数族 ✔ 有偏线性变换&#xff1a; yWxb&#xff08;仿射变换&#xff09; y Wx b \quad \text{&#xff08;仿射变换&#xff09;} yWxb&#xff08;仿射变换&#xff09; 能表示任意线性函数 平移是仿射空间的…

小白必看:AI智能体零基础搭建全攻略!

写在前面&#xff1a;别怕&#xff0c;真的不需要技术背景&#xff01; 你是不是经常听到"AI智能体"、"大模型"这些高大上的词&#xff0c;总觉得那是技术大牛的专利&#xff1f;别担心&#xff0c;这篇教程就是为你准备的&#xff01;我们将用最通俗的语…