我一直在使用git仓库projectA
。经过一些工作后,我意识到我的更改并不完全适合这个项目的范围,我想将我创建的新文件夹分离到一个新的git repo中,同时将剩余的内容添加到projectA
中作为新repo中的子模块。
当前文件夹结构为
projectA
├── build
├── executables
├── lib
├── *projectB*
│ ├── *subfolders from project B*
│ └── ....
├── resources
├── src
└── test
字符串
我想做的是将整个*projectB*
文件夹移动到一个新的GitHub存储库中。由于projectB
依赖于projectA
的其他文件夹中定义的一些目标,我认为最简单的解决方案是
projectB
├── lib
│ └── *projectA*
└── subfolders from project B
├── ....
└── ....
型
其中projectA
现在是git子模块。
有没有一种干净、快速、可能是半自动化的方法来实现这一点,以避免搞砸我的git仓库?
1条答案
按热度按时间62o28rlo1#
假设
projectA
有分支main
。要将projectB
的历史记录与当前存储库分离,请执行以下操作:字符串
现在
b_main
是以projectB
作为根的分支。如果您 checkoutb_main
,您将看到前一个projectB
下的文件和文件夹。从
projectA
的历史中删除projectB
的历史。型
现在
a_main
没有projectB
,就好像它从未存在过一样。推送a_main
以替换projectA
远程存储库中以前的main
。型
切换到
b_main
并添加projectA
的新main
作为子模块。型
将
b_main
作为main
推送到新存储库。型
克隆新的
projectB
以检查它是否正常。型