我已经开始在我的项目中使用Git,其中前两个提交只是一些初始设置(.gitignore和.gitattributes),第三个提交M2添加了SVN主干的内容:
I1 -- I2 -- M2 -- N -- .. -- Z
Run Code Online (Sandbox Code Playgroud)
我已经在名为svn的分支中导入了SVN历史记录,其中M1是SVN中继(内容与M2相同,除了.gitignore和.gitattributes):
A -- B -- ... -- K -- L -- M1
Run Code Online (Sandbox Code Playgroud)
问:合并两个分支的最佳方法是什么?
我可以将M1和M2合并到M3中,然后重新绑定,但我不知道如何删除I1和I2提交,如果我可以安全地删除M3提交(我已经找到一些建议来保留合并提交,但是这种情况M3不再需要了).
A -- B -- ... -- K -- L -- M1
\
M3 -- N' -- .. -- Z'
/
I1 -- I2 -- M2 -- N -- .. -- Z …Run Code Online (Sandbox Code Playgroud) 我有一个存储库,其中包含不再使用的旧版网站的代码master.该站点在一个新的存储库中完全重新设计,该存储库中的代码和历史记录被复制到旧站点的repo中的一个分支中,让我们调用它new_site.我无法合并new_site到master,因为历史是完全不同的.
我已经调查过两个子模块和子树合并了一下,但是当你试图保持代码来自另一个项目的子目录中包含的一个项目时,两者似乎只是相关的,而不是当你想要在两个工作树之上粘贴两个工作树时彼此.
此时,我希望将旧代码保留在原来的位置,并将其添加new_site到当前HEAD的顶部.任何想法我怎么能做到这一点,或替代建议清理这个烂摊子而不吹走旧代码?