![](/img/trans.png)
[英]Is there any way to prevent from commintng package-lock.json unless package.json has changed?
[英]Managing package.json & package-lock.json with Git
我知道您应该在git 仓库中添加package-lock.json ,以确保团队成员使用相同版本的依赖项。
运行npm install
将检查package-lock.json并安装此处指示的版本。 如果没有锁定文件,它将按照package.json的指示从源安装软件包。
那么,是否也应该将package.json添加到您的git仓库中?
如果不是这样,克隆仓库的新团队成员将获得锁定文件,但是无法从锁定文件生成package.json文件,对吗?
额外的问题:如何处理package-lock.json中的合并冲突? 由于它们是机器生成的,因此我发现这种情况经常发生,而且并不总是很清楚应该如何解决。
是的, package.json也应该包括在内。 除了包含项目元数据并且npm
需要它之外,它还提供了简洁明了的显式依赖关系视图 。
关于冲突,最好的选择可能是完全使用其中之一(不尝试合并)。 或者只是从头开始重新创建它。 在项目的早期阶段,您可能会遇到许多冲突,在该阶段中,所有主要依赖项都在添加中。
要回答您的奖金问题:
有一种方法可以教Git使用合并驱动程序和.gitattributes
文件自动“合并” package-lock.json
.gitattributes
文件。
TL; DR
在每个开发人员机器上运行一次:
git config --global merge.theirs.name "Keep changes of upstream branch"
git config --global merge.theirs.driver "cp -f '%B' '%A'"
将以下.gitattributes
文件添加到您的.gitattributes
(并提交):
package-lock.json merge=theirs
请参阅我的博客文章以获取更详细的说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.