如何优雅地将别人的开源项目“搬”到自己的 GitHub 仓库(完整保留提交历史 + 不显示 forked from)

在日常开发中,我们经常需要:

  • 把 Gitee/GitLab 上的优秀项目搬到自己的 GitHub 二次开发
  • 只想要某个特定分支,而不是整个仓库
  • 保留完整的提交历史,但又不想页面显示 “forked from xxx”

以下是目前最常用、最优雅的几种方案(按推荐程度排序):

方法一:完整镜像迁移(最推荐,专业做法)

# 1. 在 GitHub 上新建一个完全空的仓库(不要勾选初始化 README/.gitignore/license)
#    https://github.com/new

# 2. 镜像克隆原仓库(支持 Gitee、GitHub、GitLab 等任意平台)
git clone --mirror https://gitee.com/原作者/原项目名.git

# 3. 进入目录
cd 原项目名.git

# 4. 修改推送地址为自己的仓库(强烈建议使用 SSH)
git remote set-url --push origin git@github.com:你的用户名/你的仓库名.git

# 5. 一键推送,所有分支、tag、历史全部保留
git push --mirror

方法二:只迁移单个分支(日常最常用)

# 只克隆指定分支(体积最小,只下载这个分支的历史)
git clone --single-branch --branch dev https://gitee.com/原作者/项目名.git
cd 项目名

# 可选:把分支重命名成 main
git branch -M main

# 设置自己的 GitHub 仓库地址
git remote set-url --push origin git@github.com:你的用户名/你的仓库名.git

# 推送
git push -u origin main

方法三:使用 GitHub 官方 Import(会显示 forked from)

适合不在意显示来源的场景:

1、打开 https://github.com/new/import
2、填写原仓库的 git 地址(支持 Gitee/GitLab 等)
3、点击 Begin import

缺点:页面会显示 “forked from xxx”

方法四:下载 ZIP(最简单,但丢失历史)

原仓库页面 → Code → Download ZIP
解压后执行:

git init
git add .
git commit -m "Initial commit"
git remote add origin git@github.com:你的用户名/你的仓库名.git
git branch -M main
git push -u origin main

适合完全不在意 commit 历史的快速上手场景。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值