我有一个在 git 控制下的项目,其中代码被组织到项目不同部分的子目录中。现在我认为一个特定的子目录的内容最好是一个完全不同的项目。是否可以从该项目中挑选文件(或者只说文件夹)并使用这些项目创建一个新的 git 存储库,同时保留所有现有的提交历史记录?
我知道更简单的选择是将整个项目复制到一个新项目中并删除我不需要的所有文件和目录并将其作为新提交输入。但我想知道 git 是否有自己的东西来做这件事。
最佳答案
您可以使用 git filter-branch
为了提取一个子文件夹作为它自己的仓库。
见:
GitHub "Splitting a subfolder out into a new repository"
git filter-branch --prune-empty --subdirectory-filter YOUR_FOLDER_NAME master
一旦您为该子文件夹创建了一个新的存储库,您就可以使用 git submodules 在您的原始存储库中引用它。 .
关于git - 来自现有 repo 中选定文件的新 git repo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26901138/