【Git】| 将拉下来的代码上传到自己的 Gitee 仓库(手把手教学)

从别人的 Gitee 仓库拉下代码,想把它变成自己的仓库继续开发?本文手把手教你修改远程地址、推送分支,并解决常见的分支和冲突问题。

目录

一、前言

二、准备工作

三、创建自己的空仓库

四、修改本地仓库的远程地址

五、查看本地分支并推送

[1. 查看本地所有分支](#1. 查看本地所有分支)

[2. 如果遇到 error: src refspec main does not match any](#2. 如果遇到 error: src refspec main does not match any)

六、解决推送被拒绝(远程已有内容)

方法一:合并远程内容(推荐,保留远程文件)

方法二:强制推送(用本地代码覆盖远程)

[七、让 master 分支与 dev 分支内容一致](#七、让 master 分支与 dev 分支内容一致)

八、常见问题与注意事项

[1. 推送时提示权限错误](#1. 推送时提示权限错误)

[2. 分支名与默认分支不一致](#2. 分支名与默认分支不一致)

[3. 如何推送其他分支](#3. 如何推送其他分支)

[4. 关于 main 和 master](#4. 关于 main 和 master)

九、总结


一、前言

在开发中,我们经常从开源项目或团队仓库克隆代码,然后想把它迁移到自己新建的 Gitee 仓库中继续开发。但直接 git push 通常会遇到各种错误,比如:

error: src refspec main does not match any

! [rejected] dev -> dev (fetch first)

本文以实际场景为例,帮你一步步完成代码迁移,并解释每个操作的含义。


二、准备工作

假设你已经从别人的仓库克隆了代码,并且本地已有完整项目:

bash 复制代码
git clone https://gitee.com/原用户/原仓库.git
cd 原仓库

现在你想把这个代码推送到自己的 Gitee 空仓库。


三、创建自己的空仓库

  1. 登录 Gitee,点击右上角 "+""新建仓库"

  2. 填写仓库名称,不要勾选"使用 Readme 文件初始化仓库",保持空仓库,否则后续就需要强制覆盖仓库。

  3. 创建完成后,复制仓库的 HTTPS 或 SSH 地址,例如 https://gitee.com/你的用户名/新仓库.git


四、修改本地仓库的远程地址

查看当前远程地址:

bash 复制代码
git remote -v
# 如果显示原仓库的 URL,需要修改

origin 指向你自己的新仓库:

bash 复制代码
git remote set-url origin https://gitee.com/你的用户名/新仓库.git

再次确认:

bash 复制代码
git remote -v
# 应该显示你的新仓库地址

五、查看本地分支并推送

1. 查看本地所有分支

bash 复制代码
git branch

# 输出示例:
# * dev
#   master
#   stu

* 表示当前所在分支。如果你打算推送 dev 分支,直接执行:

bash 复制代码
git push -u origin dev
  • -u 会建立本地 dev 与远程 dev 的追踪关系,以后只需 git push 即可。

2. 如果遇到 error: src refspec main does not match any

这个错误说明你本地没有 main 分支(可能只有 devmaster)。解决方法是推送你实际存在的分支,例如:

bash 复制代码
git push -u origin dev   # 推送 dev 分支

六、解决推送被拒绝(远程已有内容)

如果你的新仓库创建时不小心加了 README 或许可证,远程仓库就有了一个初始提交。此时推送会报错:

! [rejected] dev -> dev (fetch first)

error: failed to push some refs to ...

因为远程和本地历史不相关。解决方法有两种:

方法一:合并远程内容(推荐,保留远程文件)

bash 复制代码
git pull origin dev --allow-unrelated-histories
  • --allow-unrelated-histories 允许合并两个无关的提交历史。

  • 如果出现冲突,手动解决后 git add .git commit

  • 最后推送:

bash 复制代码
git push -u origin dev

方法二:强制推送(用本地代码覆盖远程)

如果你不需要远程的初始文件(如 LICENSE),可以直接强制覆盖:

bash 复制代码
git push -f origin dev

⚠️ 注意:强制推送会删除远程的提交历史,请确保远程没有重要内容。


七、让 master 分支与 dev 分支内容一致

很多项目习惯用 master 作为稳定分支,而 dev 是开发分支。如果在项目初期,你想让 masterdev 内容相同,可以这样做:

  1. 确保本地 dev 是最新的:

    bash 复制代码
    git checkout dev
    git pull origin dev   # 如果已推送过,可省略
  2. 基于 dev 创建或重置 master 分支:

    bash 复制代码
    git checkout -b master dev      # 如果本地没有 master,创建并切换
    # 或者,如果已有 master,则重置它:
    git checkout master
    git reset --hard dev
  3. 强制推送到远程 master

    bash 复制代码
    git push -f origin master

现在你的远程仓库中,masterdev 内容一致了。


八、常见问题与注意事项

1. 推送时提示权限错误

  • 使用 HTTPS 地址时,可能需要输入用户名和密码(Gitee 现在建议使用私人令牌代替密码)。

  • 推荐配置 SSH 公钥,使用 SSH 地址推送。

2. 分支名与默认分支不一致

  • 第一次推送后,Gitee 会将推送的分支设为默认分支。你可以随时在仓库 设置 → 仓库管理 中修改默认分支。

3. 如何推送其他分支

  • 分别推送即可:

    bash 复制代码
    git push origin stu  # 推送名为的stu 分支

4. 关于 mainmaster

  • Git 新仓库默认主分支名称已改为 main,但很多旧项目仍使用 master。推送时根据你本地实际分支名选择即可。

九、总结

通过以上步骤,你可以轻松将拉取的项目代码上传到自己的 Gitee 仓库,并处理好分支、历史冲突等问题。如果还有其他问题,欢迎在评论区留言交流。

相关推荐
Dontla14 小时前
VSCode插件Git Graph介绍(Git可视化管理分支、可视化Git)
ide·git·vscode
Echoo华地14 小时前
用git diff快速比较文件夹差异并生成报告
linux·git·unix·repository·diff·branch
勤劳打代码15 小时前
防微杜渐 —— 为什么一次 Sync 会变成一次 merge?
git·团队管理
MegaDataFlowers16 小时前
基于Gitee帮助中心学习Gitee Go
学习·gitee
dyxal16 小时前
Windows 下 Git 离线安装与 VS Code 便携版集成完全指南
windows·git·elasticsearch
K3v16 小时前
【git】自动化合并推送脚本
git·自动化
鹓于16 小时前
Android APK开发到发布全流程指南
git·github
花哥码天下18 小时前
Git 多远程仓库管理
git
信创DevOps先锋20 小时前
2025年项目管理工具生态全景:国产化崛起与智能科技重塑企业协作
科技·gitee
信创DevOps先锋1 天前
Gitee Test领衔2025国内测试管理软件市场,国产化工具生态日趋成熟
gitee