在保留历史记录的同时在Git仓库之间移动文件

时间:2011-12-09 23:42:40

标签: git merge git-filter-branch

  

可能重复:
  How to move files from one git repo to another (not a clone), preserving history

我按照

的步骤进行操作

How to move files from one git repo to another (not a clone), preserving history

我确实把文件移了过来,但它带来了回购的整个历史!

有没有办法做同样的事情,但只带来相关文件的历史而不是存储库的整个历史记录?

编辑:

为了更明确地说明我正在尝试做什么,假设存储库中有10个文件,每个文件都有1个与之关联的提交(因此日志中总共有10个提交)。

我有一个新的存储库,我想将一些文件传输到,比方说其中两个。我想把文件从这些文件带到历史记录中,所以我希望在新repo的日志中有两个来自原始repo的提交。上面使用的方法将所有10个提交结束,即使只有2个文件过来。

2 个答案:

答案 0 :(得分:0)

你试过Subtree Merging吗?

  

子树合并   子树合并的想法是你有两个项目,其中一个项目映射到另一个项目的子目录,反之亦然。当你指定一个子树合并时,Git通常很聪明,可以找出一个是另一个的子树并合适地合并。

     

我们将通过一个示例将一个单独的项目添加到现有项目中,然后将第二个项目的代码合并到第一个项目的子目录中。

答案 1 :(得分:-4)

如果历史记录只有一次提交,为什么不在新的仓库中提交该文件?目前没有历史。