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

相关推荐
71777715 小时前
开源代码审计平台推荐:Gitee 在企业代码审计流程中的定位与选型建议
人工智能·gitee
墨白曦煜16 小时前
穿透 IDE 的障眼法:Git 四大工作区与核心数据流转解析
ide·git
71777716 小时前
代码审计工具有哪些:面向 Gitee 生态的对比选型参考
gitee
idealzouhu18 小时前
深入 Git 账户模型:从提交身份到 SSH 多账户隔离的完整实践
git·ssh
是2的10次方啊18 小时前
误推 master 该 revert 还是 reset?撤销与补 MR 流程
git
菠萝加点糖1 天前
Git 删除远程文件、本地保留并取消跟踪
git
理智.6292 天前
Git 工具使用之项目版本回退与修改备份:stash、reset、reflog 常用指令详解
git·gitee·github
妙码生花2 天前
GIT 提交规范
git
云雀衔光2 天前
多个 MCP Server 怎么编排:数据库 / Redis / Git / 飞书一把梭
java·数据库·人工智能·redis·git·语言模型·飞书
Java后端的Ai之路2 天前
Git pull弹出vim编辑器完整排查指南
开发语言·人工智能·git·编辑器·vim