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

ali*_*ian 5 git

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

Cas*_*bel 6

如果你没有把这个转发公开,Ben的答案肯定是一个很好的方法.

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

# No commits in common!

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

- o - o - o (legacy)
Run Code Online (Sandbox Code Playgroud)


Ben*_*son 5

您可以git filter-branch --parent-filter将工作移植到旧版本上,但是如果您与其他任何人共享您的回购协议,则会造成问题。一切都会得到一个新的SHA。确实没有避免的方法:父级(回到原始修订版)是每个修订版SHA的一部分。如果您不在乎(如果它是您自己的个人回购),那就去吧。

有一个示例git help filter-branch可以做您想要的确切事情。