You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从父仓库创建仅单初始提交的子仓库,用rebase拉取上游更新无旧提交

操作步骤

第一步:初始化子仓库(仅保留单条初始提交)

找空文件夹执行以下操作:

  • 克隆父仓库到本地,切换到子仓库创建时间点对应的父仓库提交(假设父仓库主分支为main):
git clone <父仓库URL> temp-repo
cd temp-repo
git checkout <子仓库创建时点对应的父仓库commit哈希>
  • 删除原有.git目录,重新初始化生成单条初始提交:
rm -rf .git
git init
git add .
git commit -m "feat: 初始提交(同步父仓库指定时点全量内容)"
# 绑定子仓库远程地址并推送
git remote add origin <子仓库远程URL>
git push -u origin main
  • 给子仓库添加上游父仓库远程源:
git remote add upstream <父仓库URL>
git fetch upstream

注意:务必把第一步用到的「子仓库创建时点对应的父仓库commit哈希」妥善留存,后续同步更新都要用到这个值。


第二步:后续同步父仓库新增提交

每次需要拉取父仓库更新时按以下步骤操作,只会拉取创建子仓库之后的新增提交,同时支持插入子仓库自有提交:

  • 先保证本地工作区干净,暂存或提交你在子仓库的本地修改
  • 拉取上游父仓库最新提交:
git fetch upstream
  • 用rebase截取父仓库新增提交,拼接在子仓库当前分支之后:
git rebase --onto main <你留存的初始父仓库commit哈希> upstream/main
  • 出现冲突就按提示解决冲突,执行git rebase --continue完成操作即可。此时你查看子仓库提交历史,就能看到父仓库的新增提交都独立保留了记录,中间可以正常插入你自己的子仓库提交。
  • 最后推送到子仓库远程即可,rebase后提交哈希会变化,需要加-f参数强制推送(多人协作的子仓库请提前同步队友避免覆盖他人提交):
git push origin main -f

内容的提问来源于stack exchange,提问作者JD Solanki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:15:04