如何避免每次更改分支时安装 npm?

Mis*_*our 6 git node.js laravel gitlab

我在 git 实验室中有一个 git 存储库设置。现在每次我改变分支我应该这样做:

npm install && composer install && cp .env.example .env && artisan generate key

因为我丢失了.env,node_modules和 作曲家模块。并且重新安装它们需要很长时间。因为如果我没有安装 node_modules 和其他东西,我无法运行它并测试分支

我想知道我是否做错了什么,或者是否有办法让它发生。

我做了很多搜索但没有运气。

提前致谢

toy*_*oyi 4

你确定你正在谈论的文件/目录被 git 忽略(它们在你的.gitignore文件中)吗?如果不是这种情况,以下是您问题的答案:

由于它们与您正在处理的环境绑定在一起,因此 git 无论如何都不应该触及它们。这就是为什么如果您在另一家分行结帐的话,您不应该丢失它们。

只有composer.lockpackage-lock.json.env.example应该进行版本控制。然后,当您从 GitLab 克隆存储库时,您会执行 a npm install、 a composer install、复制.env.example等...以设置您的依赖项,但依赖项目录(例如 )node_modules不应来自您的存储库。

一段时间后,假设您想要更新您的 Composer 依赖项。你会做一个composer update. 您的composer.lock文件将被更新并将被提交到您的存储库。

然后,如果另一台计算机上的某人拉取您的更改,他只会拉取新更新的composer.lock文件。然后,他将创建一个composer install,它将安装(或更新,如果他之前已经安装过它们)依赖项到composer.lock他的vendor文件夹中。

希望对您有所帮助,请随时在评论中询问更多详细信息:)

  • 这就是问题所在,您不应该丢失所有这些文件和文件夹。更改分支仅更改受版本控制的文件/文件夹。如果您忽略一个文件,您可以切换分支、删除分支、初始化一个新的存储库或执行任何其他操作,该文件(被忽略)将不会被删除。当你切换分支时,你能准确描述一下你在做什么吗?可能更容易理解出了什么问题:) (3认同)