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

Linux文件上传git

摘要:在 Linux 云服务器开发过程中,将本地代码同步至代码托管平台是必不可少的操作。本文将以CentOS 7系统为例,从环境配置开始,详细介绍将本地文件上传至 Gitee/GitHub 的完整流程,并提供两种通用的上传方案。


一、 环境准备与配置

在进行代码上传之前,我们需要先在CentOS 7 服务器上安装 Git 并配置与 Gitee/GitHub 的安全连接。

1. 安装 Git

CentOS 7 的默认源中包含了 Git,可以直接使用 yum 进行安装。

sudo yum -y install git

安装完成后,验证是否安装成功:

git --version

2. 配置全局用户信息

Git 要求在提交代码时必须提供用户名和邮箱,这相当于给代码署名。

请将下方命令中的内容替换为您自己的信息。

git config --global user.name "你的名字或昵称" git config --global user.email "你的邮箱地址"

若这一步不知道自己git仓库的用户名邮箱可在仓库页面进行查看。

以Gitee示例:

3. 配置 SSH 公钥

为了避免每次推送代码都输入账号密码,且解决 CentOS 7 下 HTTPS 连接可能出现的 SSL 证书报错问题,强烈建议使用 SSH 方式连接。

第一步:生成密钥

在终端执行以下命令,连续按 3 次回车即可:

ssh-keygen -t ed25519 -C "Git SSH Key"
  • -tkey 类型
  • -C注释

第二步:查看生成的 SSH 公钥和私钥

ls ~/.ssh/

输出:

第三步:获取公钥内容

查看并复制生成的公钥内容(以 ssh-rsa 开头的长字符串):

cat ~/.ssh/id_ed25519.pub

输出,如:

ssh-ed25519 AAAA***5B Gitee SSH Key

第四步:在 Gitee/GtHub 添加公钥

gitee添加位置:

GitHub添加位置:


二、 上传方案

根据实际场景,可以选择任意一种方案进行操作。

方案一:原地关联

适用场景:

服务器上已经存在一个包含代码的文件夹,不希望移动文件或重建目录,而是直接将当前文件夹转换为 Git 仓库并同步到远程。

操作步骤:

进入到目录中,按顺序执行以下命令:

1. 初始化仓库

赋予当前目录 Git 管理权限。

git init
2. 关联远程仓库

将本地仓库与 Gitee 远程仓库建立连接。

注意:请将下方地址替换为你真实的 SSH 仓库地址(在 Gitee/GitHub 仓库页面查看)。

git remote add origin git@gitee.com:你的用户名/仓库名.git

3. 拉取并合并远程分支

在推送前,必须先同步远程仓库已有的文件(如 README.md),防止版本冲突。

git pull origin master

提示:CentOS 7 环境下,如果执行此命令后自动进入黑色编辑界面(Vim),请直接输入:q并按回车键退出。

4. 提交并推送

git add . git commit -m "你的内容" git push -u origin master


方案二:克隆搬运

适用场景:

希望遵循最标准的 Git 协作流程,先从远程仓库 Clone 一个纯净的文件夹,再将原有代码复制进去。此方法最为稳妥,不易出错。

操作步骤:

1.返回上一级目录并克隆

在需要上传文件的上一级目录中输入:

cd .. # 克隆远程仓库,这会自动创建一个名为 linux 的新文件夹(取决于您的仓库名) git clone git@gitee.com:你的用户名/仓库名.git
2. 迁移代码

将原目录下的需要上传的文件复制到新克隆的目录中。

# -r 参数表示递归复制文件夹 cp -r 原文件夹/需要提交的文件 需要提交的的目录(新生成的)/
3. 提交更改

进入新目录,按照标准流程提交。

cd 需要提交的目录 git add 提交的文件 git commit -m "你的内容"
4. 推送至远程

由于是克隆下来的仓库,无需再次配置 remote 地址,直接推送即可。

git push origin master

本文基于 CentOS 7 环境编写,适用于大多数 Linux 发行版参考。

http://www.cnnetsun.cn/news/97950.html

相关文章:

  • 破局Java开发困境!飞算科技JavaAI引领智能化开发新革命
  • 21、Yocto项目应用开发全解析
  • HS2-HF_Patch:解锁HoneySelect2完整游戏体验的智能解决方案
  • Obsidian Style Settings 插件终极使用指南:快速掌握个性化定制技巧
  • Jellyfin插件MetaShark中TMDB刮削缓慢问题的深度排查与优化方案
  • 移动端AI绘图新突破:用TensorFlow Lite搞定denoising-diffusion实战指南
  • 抖音下载神器:揭秘批量保存直播回放的技术工具
  • 抖音直播下载终极指南:一键保存精彩回放
  • Motrix扩展:3步实现浏览器下载效率300%提升
  • Motrix浏览器扩展终极指南:解锁专业下载管理新境界
  • 解锁B站缓存新姿势:m4s-converter视频转换完全指南
  • LobeChat自动伸缩策略:根据GPU负载动态调整实例数量
  • 团队成长阶段的管理重点
  • 贪心算法:像“贪吃蛇”一样,永远只吃眼前的苹果?
  • java计算机毕业设计文华社区医生预约管理系统的设计与实现 社区医疗在线挂号与诊疗排班平台的设计与实现 居民健康服务预约系统开发
  • Swagger2Word终极指南:3分钟快速将API文档转为专业Word格式
  • LobeChat用户行为追踪:借助GA4收集使用数据
  • Llama-2-7B聊天模型完整部署实战指南:从零到企业级应用
  • 从零到上线:5分钟快速部署LobeChat镜像并接入Token服务
  • 21、分布式监控与Web界面使用指南
  • EmotiVoice语音合成在博物馆导览系统中的落地实践
  • 31、Nagios CGI 配置详解
  • LobeChatCTA按钮文案优化建议
  • 零基础学网安创新?8 大方向 + 学习路径(超详细),入门到精通看这篇
  • 挖到宝了!2025 网安 200 万缺口,零基础→年薪 50W 路径全公开
  • 19、量子计算:理论与实践探索
  • Windows美化神器ExplorerBlurMica:打造个性化文件管理界面的完整教程
  • AutoCAD字体缺失终极解决方案:智能管理工具全面解析
  • EmotiVoice语音多样性测试:避免重复单调输出
  • LobeChat注册流程简化方案