여러 git 분기가 Yarn 을 사용하는 프로젝트에서 종속성을 수정 하면 yarn.lock 파일에 충돌이 발생할 수 있습니다. yarn.lock 파일을 삭제하고 재생성하는 것은 바람직하지 않습니다. 이로 인해 여러 패키지가 의도 치 않게 업그레이드 될 수 있기 때문입니다. 이 파일의 충돌을 빠르게 해결하는 가장 좋은 방법은 무엇입니까?
여러 git 분기가 Yarn 을 사용하는 프로젝트에서 종속성을 수정 하면 yarn.lock 파일에 충돌이 발생할 수 있습니다. yarn.lock 파일을 삭제하고 재생성하는 것은 바람직하지 않습니다. 이로 인해 여러 패키지가 의도 치 않게 업그레이드 될 수 있기 때문입니다. 이 파일의 충돌을 빠르게 해결하는 가장 좋은 방법은 무엇입니까?
답변:
Yarn 1.0부터는 이 시나리오에 대한 지원이 내장되어 있기 때문에 쉽습니다. 다음을 실행하십시오.
$ yarn install
yarn install v1.0.1
info Merge conflict detected in yarn.lock and successfully merged.
[1/4] Resolving packages...
이제 당신은 git add yarn.lock && git rebase --continue
error An unexpected error occurred: "Unknown token 7713:1 in /location
16:23 $ yarn
yarn install v1.7.0
info Merge conflict detected in yarn.lock and successfully merged.
이 문제에 대한 이 github 토론 에 좋은 접근 방식이 자세히 설명되어 있습니다.
git rebase origin/master
첫 번째 충돌이 발생하면 체크 아웃 한
yarn.lock
다음 설치를 다시 수행합니다.git checkout origin/master -- yarn.lock yarn install
이것은
yarn.lock
yarn.lock의 오리진 / 마스터 버전을 기반으로 새로운 것을 생성 하지만package.json
. 그렇다면 다음과 같은 문제입니다.
git add yarn.lock git rebase --continue
No changes - did you forget to use 'git add'? If there is nothing left to stage, chances are that something else already introduced the same changes; you might want to skip this patch.
rebase 대신에 실행 가능한 대화식 bash 스크립트를 사용 합니다.Pipfile.lock 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"
yarn.lock
다음과 같은 코드를 포함하는 라인============
,>>>>>>>>>>>>>>
,<<<<<<<<<<<<<
. Christine Schlensker의 답변이 말하는대로해야합니다.