>  기사  >  개발 도구  >  Composer가 다운로드한 콘텐츠를 git에 제출해야 하나요?

Composer가 다운로드한 콘텐츠를 git에 제출해야 하나요?

藏色散人
藏色散人앞으로
2021-06-08 15:46:563224검색

다음 composer 튜토리얼 칼럼에서는 Composer가 다운로드한 콘텐츠를 git에 제출해야 하는지에 대한 질문을 소개하겠습니다. 필요한 친구들에게 도움이 되길 바랍니다!

구체적인 질문:

Composer를 사용하는 모든 학생들에게 묻고 싶습니다. Composer를 통해 다운로드한 파일의 내용을 Git에 제출하시겠습니까?
공식 Faq에서 Should I Commit the dependency in myvendor라는 글을 봤는데 Git에 제출하지 말라고 하는 분들도 계셨는데, 브랜치를 전환할 때 Composer를 다시 설치하는 문제는 어떻게 해결해야 할까요? 공급업체가 저장소에 제출된 경우 패키지의 .git 폴더를 어떻게 처리해야 합니까?

*수정 작곡가 업데이트는 작곡가 설치여야 합니다

해결책:

사실 브랜치 개발이든 프로덕션 환경에 대한 배포이든, 작곡가.json에서 버전 번호에 대한 와일드카드 규칙을 어떻게 작성하든 상관없습니다. , 우리는 그것에 대해 가장 우려하고 있습니다. 가장 기본적인 내용은 항상 다음과 같습니다. 개발 중에 사용한 모든 종속 라이브러리의 구체적인 버전 번호는 무엇입니까?

그리고 이 콘텐츠는 작곡가.잠금 파일에서 지원됩니다. 잠금 파일을 유지함으로써 Composer 자체는 종속 라이브러리가 변경된 후 프로젝트에 있는 모든 종속 라이브러리의 특정 버전을 기록합니다. 이 파일에 대한 설명서를 읽어보십시오(https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file).

항상 작곡가.잠금 파일을 저장소에 제출해야 하며, 브랜치를 전환하거나 배포한 후에는 작곡가 설치를 사용하여 잠금 파일에 지정된 특정 종속성 버전을 설치해야 합니다.

이런 의미에서는 벤더 디렉토리를 메인 저장소에 제출하는 것이 맞습니다. 제출 여부는 절충적 선택입니다.

제출하는 경우:

장점: "당겨서 사용"하는 편리함.

단점: 정보가 중복됩니다. 당시 개발한 특정 버전으로 인해 잠금 파일이 기록되었습니다. 즉, Vendor 폴더도 같은 내용을 표현하고 있습니다.

단점: 불일치가 발생할 위험이 있습니다. Composer는 잠금 파일이 공급업체 디렉터리와 일치하는지 확인하지만 이를 git 저장소에 제출하는 것은 결국 수동 작업이기 때문입니다. 둘 중 하나에 뒤처지지 않는다는 보장은 없습니다.

제출하지 않으시면 장단점이 반전됩니다. 다시는 반복되지 않습니다.

내 생각은: "사용 편의성보다 정확성"이라는 생각을 고수하는 것이 좋습니다. 내 제안은 공급업체에 제출하는 것이 아니라 잠금 파일을 사용하여 개발 시 종속 라이브러리의 버전을 유지하는 것입니다.

제출하시는 경우, 반드시 다음 두 가지 지침을 따라주시기 바랍니다.

(1) 반드시 두 파일의 Vendor와 Composer.lock의 제출이 동기화되어 있는지 확인하세요. 하나가 언급되면 다른 하나도 언급되어야 합니다.
언제든지 커밋 중 하나만 제출하는 경우 모든 개발에 대해 책임을 져야 합니다.
그 이유는 다음과 같습니다. 가져온 후 즉시 사용할 수 있도록 공급업체에 제출하지만 git에는 부분 체크아웃 기능이 있습니다. Composer 프로젝트의 경우 Composer 프로젝트의 규칙을 따를 권리가 있지만 그렇지 않은 경우도 있습니다. 공급업체 디렉토리를 확인하세요. 하지만 실제 코드를 풀다운한 다음 작성기를 설치해 보세요. 제가 틀렸다고 말할 수는 없습니다.
(누군가 이것이 틀렸다고 하면 매 순간 SF와 Zhihu에 당신의 부도덕한 회사와 기술 이사를 폭로하도록 지원합니다)

(2) Vendor 폴더 제출에 대한 Composer의 제안을 꼭 따르십시오(https://getcomposer. org/doc/faqs/should-i-commit-the-dependents-in-my-vendor-directory.md), 하위 라이브러리의 모든 .git 디렉터리를 무시하고 공급업체에 실제 코드만 제출하세요.
믿어주세요. Vendor의 실제 코드와 Vendor/**/.git에 있는 git 라이브러리 자체의 관리 파일은 확실히 물 위 부분과 빙산의 수중 부분과 관련이 있습니다. 무시하지 않으면 사람이 죽는다고 해도 과언이 아니다.

브랜치 개발 시 저장소를 통해 Vendor 동기화를 하지 않고, Composer.lock만 동기화하더라도 시간 낭비가 발생하지 않는다는 점도 꼭 기억해두셔야 합니다.

두 브랜치 사이를 전환하는 것은 두 특정 버전 사이를 왔다 갔다 하는 것에 지나지 않습니다. Composer 자체는 다운로드된 모든 라이브러리를 캐시합니다. 각 분기를 가져온 후 작성기 설치는 다운로드 시간을 반복적으로 소비하지 않고 모든 캐시에 확실히 적중합니다.

위 내용은 Composer가 다운로드한 콘텐츠를 git에 제출해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제