【发布时间】:2017-04-16 10:11:47
【问题描述】:
如何配置 git,以便 node_modules 可以在本地进行版本控制,但在推送时会被忽略?有没有可能?
原因:不同的打包系统(例如 npm/yarn/..)访问 node_modules,有时某些包会损坏。我们想要监控工具到底发生了什么变化。并且 node_modules 不应该被推送到开发服务器上。
【问题讨论】:
-
你不能,所以使用 Vampire 的技术(多个 Git 存储库)。
-
git的创造者没想到这种可能性?
-
Git 是明确设计的,因此您不能阻止任何拥有存储库的人对存储库做任何他们想做的事情。存储库中的文件不是按路径名存储的,而是按“对象 ID”(哈希 ID)存储的,并且推送不是按文件完成的,而是由 commit 完成的。你要么有一个提交(然后你拥有所有),要么你没有(然后你什么都没有)。有一些方法可以只获得部分提交,而不是全部提交,但它们使用起来很棘手。
-
亲爱的 torek,在我看来这是一个必要的功能,它被遗忘了。 .gitignore_local 和 .gitignore_remote 是有意义的。我不想得到例如node_modules 来自远程,这些是本地生成的数据。但在某些情况下,我想知道本地发生了什么变化,即数据不太重要,我无法从远程获取的数据中生成它,但我对本地更改感兴趣。
-
请注意选择标签并阅读标签说明 - [yarn] 不适用于 Yarn 包管理器,那里有“请勿使用”通知提醒您。我已经为你编辑了标签,但要小心,因为有些标签有点不清楚。
标签: node.js git npm node-modules yarnpkg