将文件夹从存储库移动到另一个存储库

时间:2016-11-23 13:30:00

标签: git repository

我无法正确地提出我的问题。 情况是:我在github上有一个存储库,如下所示:

OldRepository
- 文件夹1
- 文件夹2
- 文件夹3

我想将一个文件夹从此存储库移动到另一个文件夹,如下所示:

OldRepository
- 文件夹1
- 文件夹2

NewRepository
- 文件夹3中的文件和文件夹

我已经遵循了本教程:https://lostechies.com/johnteague/2014/04/04/using-git-subtrees-to-split-a-repository/,但我现在陷入困境“现在lib文件夹存在于新的存储库中......”

目前,我在github上的存储库正是我想要的方式(我上面给你看的方式)。但是在我的电脑上,这三个文件夹仍然在同一个文件夹中。

我拥有的是:

ProjectFolder
- 文件夹1
- 文件夹2
- 文件夹3

我想要的是:

ProjectFolder
- 文件夹1
- 文件夹2

NewProjectFolder
- 文件夹3中的内容

所以我想要的是将Folder 3的内容从ProjectFolder复制到NewProjectFolder,并将此NewProjectFolder链接到NewRepository。 我真的没有得到我需要做的事情,我对git很新。

1 个答案:

答案 0 :(得分:1)

如下所示,假设您只有一个主分支:

cd old_repo
git subtree split -prefix folder3 -branch temp
git rm -r folder3
git commit -m"Removed folder 3 from my old repo"
git checkout temp
cd ..
cp -r old_repo new_repo
cd new_repo
git branch -D master
cd ../old_repo
git checkout master
git branch -D temp

也许你应该离开git rm -r,直到你确定你正确复制了回购。您还可以将new_repo中的分支temp重命名为master:

cd new_repo
git checkout -B master
git branch -D temp