我有两个回购,OGrepo
和Newrepo
。 OGrepo
中有两个目录:
OGrepo
|-dirOne
|-dirTwo
我想在Newrepo
内放置dirTwo
的副本,包括Newrepo
发生的每一段提交历史记录它的整个生命周期。我已经尝试了几个小时才能做到这一点,并且已经掉了一些兔子洞,现在我的OGrepo
充满了随机遥控器和Newrepo
的副本,与{ {1}}和dirOne
。
我得到的最接近的是当我完成this回答建议时,我的终端指向dirTwo
的根级别做了以下事情:
OGrepo
然后,我git subtree add --prefix=dirTwo/Newrepo git://github.com/theUrlOf/Newrepo master
键入了cd dirTwo
和git add *
,然后是git commit -m"message"
。
这没关系,所有目标文件都在那里,看起来不错。但是如果我进入git push origin master
并键入dirTwo/Newrepo
,那么唯一出现的记录就是我刚刚提交的提交。
接下来,我尝试使用here列出的方法:
git log
所以 - 之后添加*并推送(它说的一切都很好)。我检查我的github帐户,没有任何东西。
最后,我尝试了几种不同版本的方法,这是最简洁的说明方式: https://stackoverflow.com/a/1426163/7082628
这与我尝试过的第一件事类似。在正确的位置创建cd path/to/OGrepo/dirTwo
git remote add Newrepo http://github.com/urlOf/NewRepo.git
git fetch Newrepo
git merge --allow-unrelated-histories Newrepo/master # this says 'already up to date when executing'
git remote remove Newrepo
目录,但不保留提交历史记录。奇怪的是,它保留了今晚所有其他时间的提交历史,我已经尝试过这种方式,但就是这样。
那么,有什么想法吗?谢谢!