我无法正确地提出我的问题。 情况是:我在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很新。
答案 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