我在git控件下有一个项目,其中代码被组织到项目的不同部分的子目录中。现在我认为特定子目录的内容可能更好地成为他们自己的完全不同的项目。是否有可能从这个项目中挑选文件(或者只是说文件夹)并使用这些项创建一个新的git存储库,同时保留所有现有的提交历史记录?
我知道更简单的选择,只需将整个项目复制到一个新项目中,并删除我不想要的所有文件和目录,并将其作为新提交输入。但我想知道git是否有自己的功能。
答案 0 :(得分:1)
您可以使用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在原始回购中重新引用它。