将 Git/TFS 远程仓库配置为两个本地仓库

Posted

技术标签:

【中文标题】将 Git/TFS 远程仓库配置为两个本地仓库【英文标题】:Configure Git/TFS remote repository to two local repositories 【发布时间】:2019-06-22 23:36:10 【问题描述】:

我们一直在构建一个 Angular 6 网络应用程序。我们在整个应用程序中用于创建网格的前端框架/工具之一是Wijmo。不幸的是,我们使用的Wijmo 版本是-rc (release-candidate) 版本,不适合生产。我们对项目比较深入,从所有测试来看,更改版本可能会破坏一些东西。

所以我想创建一个新的本地存储库并将其连接到原始远程存储库。所以远程仓库现在将指向两个本地仓库:带有-rc Wijmo 版本的原始本地仓库,以及带有更新的Wijmo 版本的新本地仓库。这可能 w/Git 吗?到目前为止,每次我进入新的本地项目并尝试将其与原始远程 repo 连接时,本地项目都会切换回已经链接到远程 repo 的初始本地项目。

我想这里的一个问题可能是我们的node_modules 文件夹当前不包含在我们的 git 存储库中。因此,我需要创建一个全新的本地存储库来容纳一个新的 node_modules 文件夹。也许我应该在 git 存储库中包含 node_modules - 这样我就可以留在原始本地存储库中,并且只要我想要 node_modules 文件夹的新实例就可以创建一个新的本地分支?

只是想知道您的方法可能是什么。

[edit] 另一个选项可能是将远程仓库的内容复制到新的远程仓库,并将新的远程仓库连接到新的本地仓库。但我不确定如何将一个远程仓库的内容复制到一个新的远程仓库

【问题讨论】:

【参考方案1】:

好的,那么,为什么你不能只创建一个分支并在那里更新版本Wijmo?您将拥有 2 份应用程序副本,一份在 ma​​ster 中,带有 -rc 版本,一份在 您的分支中,带有更新版本。关于 node_modules 如果你使用 npm 你应该有 package-lock.json 在那里你有所有特定版本锁定的所有依赖项,所以当你这样做 npm install 它只会下载并安装来自package-lock.json 的所有依赖项。因此,在 master 中,您将拥有带有 -rc 的 package-lock.json,并在您的分支中拥有更新版本,仅此而已。您不需要签入您的 node_modules,因为 package-lock.json 基本上描述了您的所有依赖项,并且它们将在任何地方平等地恢复。之后,如果一切正常,您可以将您的分支合并到 master 中。希望对您有所帮助。

【讨论】:

谢谢你 - 但我不确定。因为在新分支中,如果我更新Wijmopackage-lock.json 版本,node_modules 文件夹仍将在node_modules/wijmo 文件夹中包含-rc 版本。你是说在新项目中我只需要运行npm install wijmo version whatever,只会安装package-lock.json中列出的wijmo版本,而忽略node_modules-rc版本号? 另外,npm install wijmo version whatever 会覆盖node_modules 中列出的-rc 版本,还是会留下node_modules 一个人? 当您更改分支时,您将在package-lock.json 中拥有wijmo 的新版本,但在node_modules 中您将拥有一个旧版本,但您只需要运行npm install 即可更新您的 node_modules 版本与您在 package-lock.json 中的版本相同,就是这样。 在部署期间这不是问题,因为您每次在那里运行npm install(因此您每次都将您的node_modules 更新为您在package-lock.json 中拥有的内容),并且在暂存环境和生产中您总是会有在package-lock.json 中指定的包版本。在本地,您需要在每次更新 package-lock.json 时手动运行 npm install 好吧,那是我害怕的。因此,如果我运行npm installnode_modules 将根据我在package-lock.json 中指定的版本进行更改。我很害怕这一点,因为如果Wijmo 的新版本出现问题,我希望能够轻松恢复到-rc。但是你说如果我想恢复,我需要做的就是将package-lock.json中的版本号改回旧的-rc,运行npm installnode_modules将恢复到@987654361 @版本?

以上是关于将 Git/TFS 远程仓库配置为两个本地仓库的主要内容,如果未能解决你的问题,请参考以下文章

maven是怎么判断包在本地仓库和远程仓库哪个是新的

[转]GIT实践:合并本地仓库与远程仓库

将本地仓库上传至远程Git仓库

idea如何使用git关联远程仓库

idea如何使用git关联远程仓库

git之本地仓库关联远程仓库