如何将git存储库导入另一个git存储库的子目录而不丢失任何提交?

时间:2017-02-14 23:40:33

标签: git github

我有两个GitHub存储库TinyDroidsMiwok

TinyDroids有一个子目录JustJava和一个README.md。这在日志中有大约10个提交。 Miwok在日志中有大约12个提交。

如何将整个Miwok存储库复制为TinyDroids存储库的子目录?

生成的TinyDroids存储库必须具有两个子目录:JustJavaMiwok。此外,它必须具有原始的10次提交+来自Miwok的12次提交。

到目前为止我尝试了什么:

git clone https://github.com/username/TinyDroids.git
cd TinyDroids
git clone https://github.com/username/Miwok.git

如果我在此之后提交并推送,整个Miwok子目录将在10次提交中显示为单个提交。

我也尝试过:

git clone https://github.com/username/TinyDroids.git
cd TinyDroids
git pull --rebase https://github.com/username/Miwok.git

这给出了一些我不理解的变异问题。此后git log仅显示Miwok的12次提交。

1 个答案:

答案 0 :(得分:1)

我建议创建一个分支并合并。您还可能需要将Miwok目录移动到所需的子目录。这是如何做的粗略草图:

$ git clone https://github.com/username/TinyDroids.git
$ cd TinyDroids

# Create an orphan branch to pull the Miwok repo to
$ git checkout --orphan miwok
$ git pull https://github.com/username/Miwok.git

# Move the Miwok repo into a subdir
$ mkdir Miwok
$ git mv . Miwok
$ git commit -m "Move Miwok repo to Miwok subdir"

# Merge Miwok into TinyDroids
$ git checkout master
$ git merge miwok

命令git mv . Miwok不能正常工作。我们的想法是将所有内容移至Miwok子目录。您可能需要再执行一些命令来手动执行此操作。

P.S。由于这些是Android Studio项目,如果您希望将它们作为单个项目中的模块而不是两个单独的项目,则需要进行一些清理。