2016-11-23 103 views
0

我没有设法正确地问我的问题。 的情况是:我有一个仓库在这样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

内容,所以我想是到文件夹3的含量从ProjectFolder复制到NewProjectFolder,这NewProjectFolder链接到NewRepository。 我真的不明白我需要做什么,我对git很陌生。

+0

提交历史记录是否重要?否则,您可以将其移动并将其提交到新代表中,并从旧代码中提取它。 – kabanus

+0

是的,想保持提交历史 – neiya

回答

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中的分支温度重命名为master:

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

当我做所有的步骤一切正常,但最后在我的文件夹3中缺少大量文件,这是正常的吗?我尝试了三次或四次 – neiya

+0

这些文件实际上在文件夹的根目录下,所以它就是我想要的。但是当我尝试推动我有'! [拒绝]主 - >主(非快进)'。它似乎没有指向良好的存储库,我试图做'git remote set-url origin myurl'但没有更改 – neiya

+0

问题是因为本地文件和github上的存储库之间存在差异。我用git pull来管理它,现在一切正常,谢谢 – neiya

相关问题