git - 如何将 Git 存储库转移到另一个 Git 存储库的主分支

标签 git github npm

我刚刚完成了模板引擎 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/squirrellyhttps://github.com/squirrellyjs/squirrelly-v7https://github.com/squirrellyjs/squirrelly-nexthttps://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/

相关文章:

git - Git 有计划改变他们的哈希函数吗?

linux - 如何从我的网络服务器上现有站点的开发版本和实时版本创建 Git 存储库?

git 提交目录

java - 任何 java markdown 库都支持 github 语法?

gitignore 不忽略特定的 bin 文件夹

r - devtools::install_git 通过 SSH

git - 从 git 中的旧提交恢复文件

node.js - npm 的 --dev、--save 和 --save-dev 之间有什么区别?

npm - SvelteKit:npm run build 没有图像

node.js - 以 super 用户身份运行 npm,这不是一个好主意吗?