在之前的重构中,在本地新建了一个项目ExtraTestCase,并且作为本地git仓库进行了若干次提交
现在在gitblit上新建了一个仓库将项目做统一管理,仓库名为AstrobTestScript
本地的ExtraTestCase作为一个子模块路径为AstrobTestScript/ExtraTestCase
如果直接拉去远端仓库,将本地的ExtraTestCase复制进来一笔提交,就会丢失曾经的提交记录,不利于后期维护
使用第三方库 git-filter-repo来完成
进入本地的ExtraTestCase路径
bashcd /d/python/project/ExtractTestCase
bashpip install git-filter-repo
bashgit filter-repo --force --path-rename :ExtractTestCase/
提示
其中参数的含义是 分号左边为根目录,右边为新项目中的相对路径,即新项目中ExtractTestCase作为本地项目的根路径
bashcd /d/project/AstrobTestScript/
bashgit remote add local_repo /d/python/project/ExtractTestCase
bashgit fetch local_repo
bashgit merge local_repo/master --allow-unrelated-histories
bashgit remote remove local_repo
通过以上操作即可完成本地git仓库作为子模块向新仓库提交并且保存git history不丢失
本文作者:Yaki
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!