【远程仓库】- 上传本地项目到远程仓库Gitee(码云)指南

在Windows系统下,通过SSH协议 将本地项目上传到Gitee远程仓库 https://gitee.com/javatoai/car_price_prediction_cloud(需要提前建好新仓库),请按照以下步骤操作(全程使用Git Bash或CMD均可,推荐Git Bash):

前提准备

  1. 确认Git已安装
    打开CMD/Git Bash,输入 git --version,若显示版本号则已安装;未安装则下载:Git官网
  2. 确认SSH密钥已配置到Gitee (核心!SSH协议依赖密钥):
    • 检查本地SSH密钥:在Git Bash中输入 cd ~/.ssh && ls,若能看到 id_rsa(私钥)和 id_rsa.pub(公钥),说明已生成;

    • 若未生成密钥,执行:

      bash 复制代码
      ssh-keygen -t rsa -C "你的Gitee绑定邮箱"

      全程按回车(无需设置密码),密钥会生成在 C:\Users\你的用户名\.ssh 目录下。

    • 复制公钥内容:

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

      打开Gitee → 个人设置 → SSH公钥 → 粘贴公钥内容 → 保存。

    • 验证SSH连接:

      bash 复制代码
      ssh -T git@gitee.com

      若提示 Hi XXX! You've successfully authenticated,说明配置成功。

核心上传步骤

步骤1:进入本地项目目录

打开Git Bash/CMD,切换到你的项目根目录(示例):

bash 复制代码
cd D:\projects\car_price_prediction_cloud  # 替换为你的实际路径
步骤2:初始化本地Git仓库(首次上传需执行)

若项目还未关联Git仓库,执行初始化:

bash 复制代码
git init
步骤3:关联Gitee远程仓库(SSH地址)

注意:Gitee仓库的SSH地址不是HTTPS地址,需先获取:

执行关联命令:

bash 复制代码
# 关联远程仓库,命名为origin(默认名称)
git remote add origin git@gitee.com:javatoai/car_price_prediction_cloud.git

# 若之前已关联过origin,先删除旧关联:git remote rm origin,再重新关联
步骤4:添加本地文件到暂存区
bash 复制代码
git add .  # 上传所有文件(推荐)
# 或指定文件:git add 文件名/文件夹名
步骤5:提交到本地仓库
bash 复制代码
git commit -m "首次提交:汽车价格预测项目初始化"  # 替换为你的提交备注,必填
步骤6:推送到Gitee远程仓库
情况1:远程仓库为空(无任何文件)

直接推送(默认分支为mainmaster,根据Gitee设置):

bash 复制代码
# 首次推送需加 -u 绑定分支,后续可直接 git push
git push -u origin main  # 若Gitee默认分支是master,替换为 git push -u origin master
情况2:远程仓库已有文件(如README.md

先拉取远程仓库内容合并,再推送(避免冲突):

bash 复制代码
# 拉取远程分支内容
git pull origin main --allow-unrelated-histories  # 允许无关联历史合并(首次合并可能需要)
git pull origin main (报错可以尝试)
# 若出现冲突,手动解决冲突后,重新执行 git add . 和 git commit -m "解决冲突"
# 再推送
git push -u origin main

验证上传结果

打开Gitee仓库页面,刷新后即可看到本地项目文件已上传。

常见问题解决

  1. 推送失败:fatal: remote origin already exists

    原因:已关联过origin,执行 git remote rm origin 删除旧关联,再重新执行 git remote add origin ...

  2. SSH连接超时/拒绝

    • 检查网络,确保未被防火墙拦截;
    • 确认Gitee的SSH公钥未过期,且本地私钥(id_rsa)未被修改/删除;
    • Windows下若提示 Permissions for 'id_rsa' are too open,需修改私钥权限:
      右键id_rsa文件 → 属性 → 安全 → 高级 → 禁用继承 → 删除所有用户(仅保留当前用户)→ 应用。
  3. 分支名称不匹配

    查看Gitee仓库默认分支:仓库页面 → 管理 → 分支管理 → 查看默认分支,推送时对应分支名称即可。

首次合并冲突

git bash 页面出现 Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit.

这个提示是 Git 自动触发了合并提交的信息编辑环节 (因为你执行了git pull --allow-unrelated-histories,Git 需要你为这次「本地与远程分支的合并」填写一条提交说明),并非报错,按以下步骤操作即可(默认编辑器是 Vim,新手重点看按键操作):

核心操作步骤(Vim 编辑器)

  1. (可选)输入合并说明

    直接在光标处输入你想写的合并原因(比如 merge remote master branch: sync remote README.md),不用管以 # 开头的注释行(这些会被 Git 忽略)。

    ✅ 建议填写:方便后续回溯这次合并做了什么,比如简单写 merge origin/master to local master 即可。

  2. 保存并退出(关键!)

    Vim 编辑器的操作逻辑:先按 Esc 键退出「输入模式」,再输入指令:

    • 输入 :wq(含义:w=保存,q=退出);
    • 按回车键(Enter)确认。

    执行完后,Git 会完成合并提交,你就可以继续执行 git push -u origin master 了。

补充场景操作

场景1:不想写说明,直接用默认信息保存

不用输入任何内容,直接按 Esc → 输入 :wq → 回车即可(Git 会用默认的合并信息提交)。

场景2:放弃这次合并(不想继续了)

如果后悔合并,想退出并取消这次操作:

Esc → 输入 :q!(含义:q=退出,! = 强制放弃修改)→ 回车。

⚠️ 注意:这会取消本次 git pull 的合并操作,需要重新评估是否要合并。

新手友好:避免下次弹出这个编辑器(可选)

如果觉得 Vim 操作麻烦,可以把 Git 默认编辑器改成记事本(Windows 系统):

在 Git Bash 中执行:

bash 复制代码
git config --global core.editor notepad

之后再遇到需要填写提交信息的场景,会自动弹出记事本,编辑后保存关闭即可,更符合 Windows 操作习惯。

操作完验证

保存退出后,Git 会输出类似以下内容,说明合并提交成功:

复制代码
[master 1234567] merge origin/master to local master

此时再执行 git push -u origin master 就能正常推送了。

后续更新代码(日常操作)

若本地代码修改后,只需执行:

bash 复制代码
git add .
git commit -m "修改:修复XX问题"
git push  # 无需再加 -u,已绑定分支
相关推荐
cooldream20092 小时前
Git 拒绝推送(Push Rejected)问题全解析与解决方案实战指南
git
wxr06162 小时前
GIT无法push
git·gitee
不染尘.3 小时前
Linux的基本管理及命令(上)
linux·windows·ssh
装不满的克莱因瓶4 小时前
【踩坑】IDEA提交Git .gitignore忽略文件不起作用
java·git·.gitignore·踩坑
木子.李34712 小时前
ssh连接远程服务器相关总结
运维·服务器·ssh
晚风吹人醒.13 小时前
SSH远程管理及访问控制
linux·运维·ssh·scp·xshell·访问控制·远程管理
cos14 小时前
Fork 主题如何更新?基于 Ink 构建主题更新 CLI 工具
前端·javascript·git
Java后端的Ai之路14 小时前
【远程仓库】- AutoDL算力平台中Gitee 项目克隆指导
gitee·autodl
OpenMiniServer15 小时前
当 AI 成为 Git 里的一个“人”
人工智能·git
Carry34516 小时前
不清楚的 .gitignore
前端·git