把本地项目某个文件夹submodule化

本文记录了如何将他人项目的某部分代码作为submodule迁移到自己的项目中。在实践中遇到添加submodule时报错,通过尝试和研究找到了解决办法。首先,将他人代码克隆到新仓库并保留历史提交,然后在新仓库中创建submodule,并在指定目录下成功添加。最后,遇到提交子模块时的问题,发现需要分别提交主项目和子模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文章包含了git代码迁移至新仓库、git submodule

业务需求:将别人代码中的某部分的功能嵌入本项目中,经讨论如果直接拷贝所需功能代码到本项目,后续无法保证双方功能一致。结果:我们重新建一个新的仓库和他们的代码保持一致,在新的仓库中将需要的代码submodule化,之后再将submodule模块引入到我们所需的项目中。

我也没有接触过,按网上大神给出的案例实践出的报错信息和结果总结一份。

先说一下我遇到的错误
我在参考https://www.jianshu.com/p/aae191c821e6这篇文章的时候,执行第四步的时候报错信息如下:

:$ git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter app/order-embed -- --all
报错1:Found nothing to rewrite

$ git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter app/order-embed -- --all
报错2:You need to run this command from the toplevel of the working tree.

$ git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter src/app/order-embed -- --all
报错3:Rewrite b61a6fc4235566c6bd9caf0639b2de4ea9ea3ea8 (1/241) (2 seconds passed, remaining 480 predicted)    816b8f375cb654d501d0c7ed7cd3b6b273a56364
fatal: failed to unpack tree object b61a6fc4235566c6bd9caf0639b2de
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值