2013-06-27 2 views
2

일반적으로 vendor 폴더에 vendor 폴더를 보관했지만 프로덕션 서버에서 ssh 액세스가 없으므로 사용을 중지해야하고 composer update 시간이 필요합니다.bitbucket git 저장소로 이동 한 후 공급 업체 폴더의 크기가 100MB에서 15MB로 줄어든 이유는 무엇입니까?

그래서, 우리는 약 리포지토리 모든 것을 밀고 우리의 생산 서버에 FTP를 통해 그것을 배포, 우리 지역의 컴퓨터에서 composer update을하고, 공급 업체 폴더.gitignore를 제거하는 아이디어를 내놓았다. (우리는 Repository-> Production 전송을 위해 DeployHQ을 사용합니다.)

그러나 현재 로컬 프로젝트 폴더 크기는 100MB이고 Bitbucket 저장소 크기는 20MB입니다. 내 로컬 공급 업체 폴더는 약 90MB이며, 저장소에는 단지 몇 메가 바이트입니다. 검토

, 나는 Bitbucket 저장소에 해당 값 건너 온 :

vendor/doctrine/
    annotations 
     cache → 89493d2c6e [89493d2c6e] 
     collections → 3db3ab843f [3db3ab843f] 
     common → c4255b9fbd [c4255b9fbd] 
     dbal → 3253f7a1c1 [3253f7a1c1] 
     inflector → 8b4b3ccec7 [8b4b3ccec7] 
     lexer → bc0e1f0cc2 [bc0e1f0cc2] 

을 내 로컬 업체 폴더에서 나는 교리의 클래스와 PHP 파일을 참조하십시오.

그래서 나는 몇 가지 질문을하고 싶습니다.

  1. 왜 이러한 현상이 발생하며 이러한 주석은 무엇을 의미합니까? (우리는 예를 들어 힘내는 교리 것을 알고? 심볼릭 링크로 관련 수 있으므로 교리의 저장소에 심볼릭 링크 및 git pull에 교리의 저장소에서 해당 파일을 다운로드합니다?)

  2. 우리가 안전하게 생산 업체 폴더의 우리 90메가바이트을 대체 할 수 git 저장소에 5MB 공급 업체 폴더가 있습니까? (프로덕션 환경에서 git pull을하거나 FTP를 통해 저장소 폴더를 프로덕션으로 복사하면됩니다.)

  3. 어떻게하면 공급 업체 폴더를 어떻게 처리합니까? .gitignore을 유지하고 SSH를 통해 작곡가 업데이트 명령을 수행하거나 git 저장소로 푸시하고 저장소를 프로덕션 서버로 푸시? 어느 쪽이 더 낫지?

감사합니다.

ps. git이나 작곡가는 프로덕션 서버에 설치되지 않습니다.

ps. Google의 업로드 속도가 매우 낮으며 90MB를 업로드하는 데 1 시간이 걸릴 것입니다. 우리가 가장 빠른 대안을 찾았 기 때문에이 점에 유의하십시오.

답변

1
  1. 은 기본적으로 당신이 올바른지의 bitbucket은이 중복되지 않도록 때문에 단순히 각각의 저장소로 연결 공급 업체 폴더에 자식 저장소입니다 알고있다.
    git submodule init을 실행 해보십시오)는 실제 코드 당신이 그것을 사용하려고하면, 일이 중단됩니다 포함되어 있지 않기 때문에 정말 주석 Git Submodules

  2. 들여다 아니, 메가 바이트 버전이 너무 작은 이해에 도착 git submodule update 팽창 된 것을 확인하십시오!

  3. 프로덕션 서버에서 composer update을 수행하지 말고 대신 준비 서버에서 수행하십시오 (또는 테스트에 ssh가없는 경우 로컬 env에서 미리 수행해야합니다.) 귀하의 prod env] 조롱]) 그리고 잘 작동한다면 코드를 프로덕션 서버로 밀어 넣으십시오. 프로덕션 서버에서 composer update을 수행하는 것은 기껏해야 위험합니다.

+0

기본적으로 지금 우리가하는 일입니다. (단 하나의 서버가 없으므로 스테이징 서버를 제외하고, 현재는 프로덕션으로의 개발 만하고 있습니다.) 그러나 90MB 공급 업체 폴더는 저장소에서 5MB가되고 왜되는지 궁금합니다. – Aristona

+0

그럼 적절한 파생적인 방법이 있어야합니까? 내 벤더 폴더를 git에 푸시해야한다는 것을 이해하지만, 프로덕션으로 푸시하는 것은 어떨까요? git을 설치하고 git pull을 제작할 필요가 있습니까? – Aristona

+0

준비/테스트 서버가 없기 때문에 개발자 머신에서 직접 코드를 푸는 것이라고 생각하십니까? 그렇다면, 벤더 폴더를 커밋 할 필요가 없습니다. dev 컴퓨터에서'composer install'을 실행하고 거기에서 벤더 폴더를 밀어 올리십시오. 정말 그 질문에 올바르게 대답하기 위해 당신이 어떻게 코드를 배포하는지 알 필요가 있습니다. – Hailwood