我有以下文件夹布局:
workspace_folder (git repository)
* project1
* project2
* project3
* ...
workspace_folder
是一个git存储库,因此项目文件夹已经受版本控制。里面进行了很多修改。
我如何在保留其历史记录的同时使它们成为单独的git存储库?
这听起来可能很疯狂,并且很可能有更好的解决方案。
尝试获取所有最先触及您的子项目之一的提交
git log --pretty=format:%H -- projectA/ > <all-the-commits>
这应该将所有对该文件夹所做的更改的提交哈希写入文件中all-the-commits
。
然后创建一个新的孤立分支(这意味着它没有任何父提交)
git checkout --orphan <new-branch-name>
然后将您获得的所有提交樱桃挑选到这个新分支上
cat <all-the-commits> | xargs -n 1 git cherry-pick
检查并更正当前工作目录
最后但并非最不重要的一点是,创建一个新的仓库,并将这个分支推到另一个仓库中。
git push <new-repo> <new-branch-name>
最终结果应该是,在新存储库中,您只有子项目中的文件以及所有更改此文件夹中文件的提交(只有那些提交)。
我没有机会测试这些步骤,如果这听起来像是一个可行的解决方案,我将检查并在需要时进行详细说明。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句