合并子树的各种方法不保留提交历史

时间:2017-04-11 22:28:39

标签: git github git-merge git-subtree

我有两个回购,OGrepoNewrepoOGrepo中有两个目录:

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 dirTwogit 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 目录,但不保留提交历史记录。奇怪的是,它保留了今晚所有其他时间的提交历史,我已经尝试过这种方式,但就是这样。

那么,有什么想法吗?谢谢!

0 个答案:

没有答案