Git:将部分从一个repo移动到具有历史记录的其他repo

时间:2016-03-15 13:23:08

标签: git git-filter-branch

我有两个git存储库:repo1和repo2。 repo1包含文件夹“dir_a”,“dir_b”等。如何将包括git历史的所有文件从repo1的dir_a和dir_b传输到repo2?

我找到了一些有用的文章来完成这样的任务:http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history。但是,它并不完全适合我,因为我需要传输2个目录。

1 个答案:

答案 0 :(得分:1)

  

如何将包含git历史记录的所有文件从repo1的dir_a和dir_b传输到repo2?

您可以使用git filter-branch和/或git subtree split

示例代码:

filter-branch

# Filter the master branch to your directory and remove empty commits
git filter-branch --prune-empty --subdirectory-filter YOUR_FOLDER_NAME filter_from_branch

这将检出从给定文件夹到当前目录的所有所需文件

subtree split

  

<强> git subtree    git-subtree - Merge 将子树或 split 存储在子树中

git subtree split -P <name-of-folder> -b <name-of-new-branch>

enter image description here