好的,当你说你想要“切换到主repo”时,我脑海中有几个可能的意思。但这不是其中之一。
天啊...这太高级了...
好的,这是可能的,但不会很简单。备份以防搞砸,这样你可以再试一次。嗯,其实并不需要,但对于这样的事情,小心一点总比后悔好。
简而言之:从Trinity再创建另一个GitHub repo;在本地的单个repo中,从Eluna和Trinity repos中获取提交;从Eluna提交树中选择你的提交并将其移到Trinity树中;将更改推回Trinity repo。
更详细的步骤:
如果你使用Windows,我建议使用TortoiseGit。那是我的首选武器,既易于使用又高级。如果你不在Windows上,或者你有另一个更熟悉的工具,你也可以使用它。最终这一切都可以在命令行中完成——只是更加繁琐。
所以,这里有几个步骤。
首先,你的github仓库是从Eluna分叉出来的,这样不行。创建另一个仓库,从Trinity分叉出来。暂时保留第一个仓库,以防出现问题需要重新开始。
然后,进入本地电脑上的本地副本,其中包含所有更改。确保所有更改都推送到基于Eluna的github仓库中。这是一种预防措施,以免丢失工作。还要检查是否有本地修改。为了更加安全,也要清理所有未版本化的文件。让它看起来像是一个完全没有修改的新克隆仓库。
或者,只需在不同的文件夹中再次克隆基于Eluna的github仓库即可。重新开始。
无论如何,下一步-标记一些内容。特别是要标记自己最新的提交,以免丢失。
然后-引入Trinity。在本地repo中,创建另一个远程并将其指向基于Trinity的github repo。从该远程
获取更改。不要拉!
获取。
现在,您的本地副本将具有来自基于Eluna和基于Trinity的github仓库的提交混合,并且每个提交都有自己的远程。
接下来,从Trinity提交中创建一个新的分支,然后将你自己的提交移动到这个分支上。
现在就是难点了。你需要做的是挑选你自己的提交,并将它们移到你的新分支上。按顺序挑选提交,从最早的开始。在TortoiseGIT中,你可以选择多个提交并一次性挑选它们。
有时候,你会遇到合并提交,这些提交是你拉取最新的Eluna版本并将其合并到你自己的代码中产生的。不要挑选这些提交。那样只会带着整个Eluna项目。只挑选你自己的提交。
很可能会出现合并冲突,或者你已经编辑了一些Eluna中不存在但Trinity中存在的代码。在这种情况下,祝你好运!你需要手动找出如何正确地挑选那个提交。
最终,经过几个小时(或几分钟、几天,取决于你的工作量),你所有的提交都被挑选到了最新的Trinity提交之上。太棒了!
现在检查一下项目是否仍然正常工作。在这么长时间的挑选之后,你可能会漏掉一些东西。修复它们并提交这些更改。
最终,您将拥有一个基于Trinity提交的新分支,其中还包含所有您挑选的提交和其他更改。将其推送到您的Trinity github仓库。完成了!
清除本地副本并重新克隆您基于Trinity的github仓库以获得干净的状态。