将Git仓库中的文件夹推送到另一个仓库

时间:2014-07-08 17:37:22

标签: git git-submodules

我有一个Git仓库,其子目录如下:

- myproject
  + folder1
  + folder2
  + folder3

如何将子文件夹(即folder1)推送到另一个Git仓库?我认为子模块是正确的方法,但我不认为我正确地使用它或者它是否适用于此。我尝试使用子模块的方式是:

git submodule add git@urlofnewrepo folder1

但是这会导致错误:

'folder1' already exists in the index

2 个答案:

答案 0 :(得分:1)

R0MANARMY向我指出http://blogs.atlassian.com/2014/04/tear-apart-repository-git-way/基本上完成了我想做的事情。工作流程是:

git clone remote_repo_url new_repo_name
git filter-branch --subdirectory-filter folder_to_filter

所以在我的情况下,它是:

git clone remote_repo_url new_repo_name
git filter-branch --subdirectory-filter folder1

这导致文件夹“new_repo_name”仅包含来自“folder1”的文件。

答案 1 :(得分:0)

尝试--force密钥,例如:

git submodule add --force git@urlofnewrepo folder1