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 发行版参考。

相关推荐
Sleepy MargulisItG2 小时前
【Linux网络编程】应用层协议:HTTP协议
linux·服务器·网络·http
logic_52 小时前
静态路由配置
运维·服务器·网络
G31135422732 小时前
Linux 内核设计中的核心思想与架构原则
linux·架构·php
zhuzewennamoamtf3 小时前
Linux内核platform抽象、数据结构、内核匹配机制
linux·运维·数据结构
门思科技3 小时前
企业级 LoRaWAN 网关远程运维方案对比:VPN 与 NPS FRP 的技术与安全差异分析
运维·网络·安全
云闲不收3 小时前
git rebase
git
云和数据.ChenGuang3 小时前
Deepseek 持续迭代的模型
运维·运维技术·数据库运维工程师·运维教程
江上清风山间明月3 小时前
git pull和git checkout在恢复文件的区别
git·pull·checkout
物联网软硬件开发-轨物科技3 小时前
【轨物方案】聚焦锯床设备智能化升级,打造工业互联网新范式
运维·科技·物联网
suzhou_speeder3 小时前
企业数字化网络稳定运行与智能化管理解决方案
运维·服务器·网络·交换机·poe·poe交换机