Linux文件上传git

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


一、 环境准备与配置

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

1. 安装 Git

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

bash 复制代码
sudo yum -y install git

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

bash 复制代码
git --version

2. 配置全局用户信息

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

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

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

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

以Gitee示例:

3. 配置 SSH 公钥

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

第一步:生成密钥

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

bash 复制代码
ssh-keygen -t ed25519 -C "Git SSH Key"
  • -t key 类型
  • -C 注释

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

bash 复制代码
ls ~/.ssh/

输出:

第三步:获取公钥内容

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

bash 复制代码
cat ~/.ssh/id_ed25519.pub

输出,如:

bash 复制代码
ssh-ed25519 AAAA***5B Gitee SSH Key

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

gitee添加位置:

GitHub添加位置:


二、 上传方案

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

方案一:原地关联

适用场景:

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

操作步骤:

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

1. 初始化仓库

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

bash 复制代码
git init
2. 关联远程仓库

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

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

bash 复制代码
git remote add origin git@gitee.com:你的用户名/仓库名.git
  1. 拉取并合并远程分支

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

复制代码
git pull origin master

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

  1. 提交并推送
bash 复制代码
git add .
git commit -m "你的内容"
git push -u origin master

方案二:克隆搬运

适用场景:

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

操作步骤:

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

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

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

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

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

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

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

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

复制代码
git push origin master

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

相关推荐
say_fall6 分钟前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
ö Constancy31 分钟前
一台电脑的硬件组成与作用:按功能分类详解(Windows 与 Linux 视角)
linux·windows·电脑
江湖有缘36 分钟前
基于Ubuntu部署SoduWork:企业级 AI 原生协同平台实战全流程
linux·人工智能·ubuntu·ai·soduwork
无奈笑天下9 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
Rabitebla13 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
威嵌神州13 小时前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存
Decay__14 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
java_logo15 小时前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
坤坤子吖17 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
AI_Gump17 小时前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek