将 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 份应用程序副本,一份在 master 中,带有 -rc 版本,一份在 您的分支中,带有更新版本。关于 node_modules 如果你使用 npm 你应该有 package-lock.json
在那里你有所有特定版本锁定的所有依赖项,所以当你这样做 npm install
它只会下载并安装来自package-lock.json
的所有依赖项。因此,在 master 中,您将拥有带有 -rc 的 package-lock.json
,并在您的分支中拥有更新版本,仅此而已。您不需要签入您的 node_modules,因为 package-lock.json
基本上描述了您的所有依赖项,并且它们将在任何地方平等地恢复。之后,如果一切正常,您可以将您的分支合并到 master 中。希望对您有所帮助。
【讨论】:
谢谢你 - 但我不确定。因为在新分支中,如果我更新Wijmo
的package-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 install
,node_modules
将根据我在package-lock.json
中指定的版本进行更改。我很害怕这一点,因为如果Wijmo
的新版本出现问题,我希望能够轻松恢复到-rc
。但是你说如果我想恢复,我需要做的就是将package-lock.json
中的版本号改回旧的-rc
,运行npm install
和node_modules
将恢复到@987654361 @版本?以上是关于将 Git/TFS 远程仓库配置为两个本地仓库的主要内容,如果未能解决你的问题,请参考以下文章