【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 分支(可能只有 dev 或 master)。解决方法是推送你实际存在的分支,例如:

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 是开发分支。如果在项目初期,你想让 master 与 dev 内容相同,可以这样做:

  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

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


八、常见问题与注意事项

1. 推送时提示权限错误

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

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

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

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

3. 如何推送其他分支

  • 分别推送即可:

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

4. 关于 main 和 master

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

九、总结

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

相关推荐
你叶不叶8 小时前
abap git 如何从 gitee上在线拉取数据(上一步已经配置好证书)
git·gitee·sap·abapgit
kuroomi1 天前
Git入门
git·kubernetes
daliucheng1 天前
lazygit 上手:日常 git 操作一篇讲完
git
codigger1 天前
大厂git提交规范
git·程序员
挖掘狂人1 天前
六条分支,一条主干:我的 Git 分支管理心得
git·后端·程序员
Brookty1 天前
Git与GitHub系统学习|本地Git工作模型:终端与进程、CWD、HEAD/Index/工作树及Git对象
git·github
7177772 天前
企业研发平台选型指南:从代码托管到全流程研发管理的判断框架
人工智能·gitee
2301_767113982 天前
点过“不再询问”就要检查:Claude Code权限文件也可能存着密钥
git·信息安全·claude code
7177772 天前
2026 供应链安全用什么:SBOM、SLSA 与制品库的落地选型
安全·gitee
江屿风2 天前
【Git-组件】【Git入门:从文档灾难到版本掌控】流食般投喂
运维·笔记·git·组件·版本控制