如何将一个具有所有历史记录的文件或文件夹从一个git repo分离到另一个git repo?


How to separate one file or folder with all history from one git repo to another?

本问题已经有最佳答案,请猛点这里访问。

让我解释一下。有一段时间我开发了一些代码。现在我想分离一个部分并使其成为开源的。我的主要问题是保存所有提交历史记录,这与文件有关。


我怀疑您要问的是如何将一个子目录(或一组文件)创建到自己的存储库中。如果是这样的话,那么你会问一个以前回答过很多次的问题:

  • 将子目录分离(移动)到单独的Git存储库中
  • 如何使Git存储库的一部分成为子模块
  • 从文件夹创建子模块存储库并保留其Git提交历史记录
  • 重写历史Git筛选器分支创建/拆分为子模块/子项目

并且有很好的文档记录和googlable:

  • Github-将子文件夹拆分为新存储库

这与"如何询问"帮助页面上的建议不符,并使其成为作为副本关闭的候选项。


您可以使用git责备并将提交历史记录保存到一个文件中,例如:

1
git blame <full_file_path> > blame_file.txt