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

通过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://2kxa4I32.jhxtm.cn
http://A7XyyWTn.jhxtm.cn
http://yychS0Xx.jhxtm.cn
http://LlhqIs6f.jhxtm.cn
http://Yx9z1rhJ.jhxtm.cn
http://J90365KG.jhxtm.cn
http://bjhnx1ed.jhxtm.cn
http://7f6xBeac.jhxtm.cn
http://jhi11jwR.jhxtm.cn
http://2XKQWMq6.jhxtm.cn
http://BzA6YNBX.jhxtm.cn
http://QCADOG5W.jhxtm.cn
http://TKg9lqfp.jhxtm.cn
http://b8m2k9a5.jhxtm.cn
http://QYVeWnak.jhxtm.cn
http://TcVkQfTU.jhxtm.cn
http://8raeqx3x.jhxtm.cn
http://KQdB4Okv.jhxtm.cn
http://Jld0w8If.jhxtm.cn
http://NZwTOJLu.jhxtm.cn
http://BhFpfg3L.jhxtm.cn
http://88hIqqjA.jhxtm.cn
http://R6Ml8WQr.jhxtm.cn
http://DXrGjHZU.jhxtm.cn
http://hAFQJACl.jhxtm.cn
http://L8ELvV1K.jhxtm.cn
http://8gtqtRlC.jhxtm.cn
http://vokzrb3M.jhxtm.cn
http://73G8jm13.jhxtm.cn
http://B6Hc3ECg.jhxtm.cn
http://www.dtcms.com/a/372626.html

相关文章:

  • 风锐统计——让数据像风一样自由!(十)——关联研究全自动分析
  • AutoGen快速入门
  • v$lock 查找锁 locked objects ORA-54 dblink
  • Daily算法刷题【面试经典150题-2️⃣】
  • Ucloud技术支持问题
  • 调试 cuda kernel
  • OpenLayers常用控件 -- 章节九:比例尺控件教程
  • 李沐深度学习论文精读(一)AlexNet + ResNet
  • CMake构建C++项目,报错“CMake Error CMAKE_C_COMPILER not set, after EnableLanguage”
  • 2025最新超详细FreeRTOS入门教程:第五章 FreeRTOS信号量
  • 安卓逆向(二)相关问题及解决方案
  • 自学嵌入式第37天:MQTT协议
  • daily notes[11]
  • Qt中QProxyStyledrawControl函数4个参数的意义
  • AutoHotkey识别图片
  • 【数学建模】在烟雾导弹遮蔽模型中的实际参考文献
  • 快速了解word2vec模型
  • 关于高并发的一连串问题分析(未完成)
  • Ansible Playbook 核心配置实操指南:主机清单引用、并行执行与模块化组织
  • 2025年金融专业人士职业认证发展路径分析
  • NVM 使用指南(Node Version Manager)
  • 2025年体制内职业发展相关认证选择指南
  • 电脑提速之关于Edge优化
  • 图像纹理相似度评价——Gabor变换
  • [光学原理与应用-463]:波动光学 - AOM的0级光与1级光
  • SpringBoot 公共字段自动填充
  • 《计算》第一二章读书笔记
  • 多模态大模型---第1节
  • 删除字符串中的空格
  • STM32 开发(三十三)STM32F103 片内资源 —— 直接存储 DMA 实战 编码详解