将旧版本的代码添加到git repo

时间:2011-02-20 00:33:40

标签: git

我的项目有一个git repo,我的第一次提交是在v1.2。在git之前我使用我的代码的每日快照来保证它的安全。我现在想要将所有快照添加到repo中以及启动v0.3,但我已经在1.2之上提交了相当多的提交。那么最好的方法是什么?我应该逐个提交快照并添加标签吗?或者我应该为所有这些快照创建另一个分支?或者也许用v0.3启动一个新的repo并提交所有快照,然后以某种方式将repo与旧的1.2合并?

2 个答案:

答案 0 :(得分:5)

如果你没有把这个转发公开,

Ben's answer绝对是一个很好的方法。

另一方面,如果您已经发布了当前的存储库,因此不希望将其根提交移植到以前的工作中,我会建议一些不相交的东西。我个人很想在存储库中创建另一个名为“legacy”的分支,或者其他一些分支,在你的第一个快照的新根提交中启动它,并在其上提交所有其他分支。据推测,这里的主要用途就是归档那些工作,并且可能在某些时候检查它或者对它进行区分 - 即使历史有点奇怪,你也能够完成所有这些工作:

# No commits in common!

- o - o - o - o - o (master)

- o - o - o (legacy)

答案 1 :(得分:4)

您可以git filter-branch --parent-filter将您的作品移植到旧版本上,但如果您与其他人共享您的回购邮件,则会导致问题。一切都会得到一个新的SHA。实际上没有办法避免这种情况:父母(回到原始版本)是每个版本的SHA的一部分。如果你不关心(如果这是你自己的个人回购),那就去吧。

git help filter-branch中有一个示例可以帮助您完成所需的操作。