我有一个从另一个git项目复制的Git项目。它只是一个文件复制和提交,因此它没有复制历史记录。我从以前的文件导入了提交,但是它们没有连接到文件的新版本。因此,如果我查找两个存储库中存在的文件的历史记录,那么历史记录只会复制到我复制项目的时间。
我尝试检查旧项目的最新修订版,然后git合并新项目的第一个修订版。然后我合并为主人。这使得项目的git历史记录看起来正确,但每个人的文件历史记录都没有改变。
这几乎就像我们要删除那些说“"创建所有这些文件"而是预先添加旧项目的历史。
这可以用Git吗?
答案 0 :(得分:2)
预先添加旧项目的历史记录。这可能与Git有关吗?
这应该是可能的,following this answer。
它使用了git repository layout中描述的git grafts
,但旧答案可能会受益于最近的git replace
command。
请参阅“Collating repositories or grafting earlier history with Git”
答案 1 :(得分:1)
在我看来,你可以用相当简单的樱桃选择重建历史:
old
和new
分别指向新旧回购站old/master
创建一个新分支,该分支位于旧仓库的最后一个修订版git cherry-pick first..new/master
其中first
是新仓库中第一次提交的SHA1(您可以使用git log new/master
找到它,然后按G
跳转到最后)< / LI>
醇>
结果基本上是旧回购中的提交+没有first
的新回购中的提交。像往常一样,樱桃选择,提交日期和作者将被保留。