我刚刚完成了模板引擎 Squirrelly 的开发。我将当前版本存储在 GitHub 存储库中 https://github.com/squirrellyjs/squirrelly新版本位于https://github.com/squirrellyjs/squirrelly-next .
我的问题与最终在 NPM 上发布有关。最初我计划发布在squirrelly-next
然后稍后 merge ,但我想我决定只发布在 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2a595b5f4358584f4646536a12041a041a" rel="noreferrer noopener nofollow">[email protected]</a>
.
然而,问题是所有新的开发都在 squirrelly-next
中。 repo 协议(protocol),我需要以某种方式获取 squirrelly
的代码和历史记录仓库(有 v7
的分支)。
我实际上刚刚考虑过重命名 https://github.com/squirrellyjs/squirrelly至https://github.com/squirrellyjs/squirrelly-v7和 https://github.com/squirrellyjs/squirrelly-next至https://github.com/squirrellyjs/squirrelly 。这会有任何潜在的缺点吗?如果是这样,我如何从 squirrelly-next
获取我的 Git 存储库到 squirrelly
的主分支?
最佳答案
可能有多种选项可以做到这一点,但是,我描述的最常用的一个是您可以在项目中添加两个存储库。
假设有一组作为您的原点,
https://github.com/squirrellyjs/squirrelly
您可以通过 git remote -v
进行检查,它会为您提供列表或远程存储库。
您需要创建一个新的存储库,您需要将代码移至其中
https://github.com/squirrellyjs/squirrelly-next
然后,返回您的项目,按照以下命令操作。
git 远程添加新来源
https://github.com/squirrellyjs/squirrelly-next
git fetch new-origin
就是这样,
现在,如果您想将任何分支从原点移动到新原点,只需按如下操作即可。 假设我正在考虑一个例子,我们想要将旧来源的主分支移动到新来源
我们只需要检查旧源的 master 分支
if no branch exists on new repository
git push new-origin master
And if exists then first you need to get the new repository branch in local
git checkout new-origin/master
在本地创建分支。
git checkout new-master
在将 master merge 到 new-master 之前,我们需要对 if new-master 与 master 进行 rebase
git checkout master //which is from old repository.
git rebase new-master
解决冲突(如果有)
git checkout new-master
git merge master
git push new-origin/master
这将包含最新的代码以及旧存储库中的代码。
那么你需要在本地设置分支的跟踪,
git branch --set-upstream-to=new-origin/master
或者您可以删除旧的 origin 并将 new-origin 重命名为 origin
git remote rm origin
git remote rename new-origin origin
如果您按照第二步操作,则无需更改分支机构的跟踪信息。
关于git - 如何将 Git 存储库转移到另一个 Git 存储库的主分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59959350/