【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 仓库,并处理好分支、历史冲突等问题。如果还有其他问题,欢迎在评论区留言交流。

相关推荐
WKP94182 小时前
git的merge和rebase操作
git
___波子 Pro Max.4 小时前
Git 分支切换
git
win x4 小时前
一篇搞懂Git基础操作
linux·git
一个有温度的技术博主5 小时前
网安实验系列五:.git源代码泄露
git
是翔仔呐5 小时前
第10章 串口通信USART全解:轮询/中断/DMA三种收发模式与上位机通信实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
吴声子夜歌6 小时前
TypeScript——索引类型、映射对象类型、条件类型
git·ubuntu·typescript
吴声子夜歌6 小时前
TypeScript——局部类型、联合类型、交叉类型
javascript·git·typescript
i建模14 小时前
安装 `openclaw@2026.3.1` 时遇到了 Git 仓库访问权限问题
git
freewlt16 小时前
git配置文件名称大小写
git