提问者:小点点

如何解决纱线中的git冲突。锁


当多个git分支修改使用Yarn的项目中的依赖关系时,很可能会在yarn.lock文件中引入冲突。删除和重新生成yarn.lock文件不是一个好主意,因为这可能会导致几个包无意中升级。快速解决此文件中冲突的最佳方法是什么?


共3个答案

匿名用户

自纱线1.0以来,这很容易,因为它内置了对该场景的支持。

首先解决包中的冲突。手动输入json,然后运行以下命令:

$ yarn install

yarn install v1.0.1
info Merge conflict detected in yarn.lock and successfully merged.
[1/4] Resolving packages...

然后冲突将得到解决,你可以提交或继续重新设置基础,如果这是你正在做的。

匿名用户

关于这个问题的github讨论中详细介绍了一个好的方法。

git rebase origin/master

当第一个冲突出现时,我签出yarn.lock然后重新执行安装

git checkout origin/master -- yarn.lock 
yarn install

这将生成新的纱线。根据纱线的原始/主版本锁定。锁定,但包括我对包所做的更改。json。那么这只是一个问题:

git add yarn.lock
git rebase --continue

匿名用户

我没有使用rebase,而是使用可执行的交互式bash脚本,它只获取Pipfile。锁定文件

#!/usr/bin/env bash
export GIT_TRACE=1
git checkout origin/master -- Pipfile.lock Pipfile
git commit -m "fetch to branch Pipfile.lock, Pipfile from origin/master" -- Pipfile.lock Pipfile
read  -n 1 -p "Do your changes in Pipfile and press Enter ..."
pipenv lock --clear
git commit -m "re-apply changes to Pipfile.lock, Pipfile" -- Pipfile.lock Pipfile
echo "Done"