2014-09-16 5 views
18

작곡가와 특정 끌어 오기 요청을 가져올 수 있습니까? 포크에서 특정 커밋처럼? 지시문은 어떻게 생겼을까요?작곡가와 특정 커밋을 가져올 수 있습니까?

편집 : 컨텍스트 이렇게하면 새 태그가 생성 될 때까지 기다릴 필요가 없습니다. 그때의 devs 기회를 얻을 것이다 차라리 내가에서 오전 작업 흐름을 연기하지 않는 게 좋을 때 경우 나도 몰라,이 병합됩니다 확신 ...

편집 2 : 지금 개발자들이 공개 패키지를 만들 때 프로젝트 또는 두 개의 프로젝트 내에서 자신의 포크를 테스트해야 할 수도 있습니다.

편집 3 : 예https://github.com/valorin/dispatcher/commit/c566eb6902f378abd59943e7ea09f61e734c8960을 사용할 수 없으면 시도해 보았습니다.

"valorin/dispatcher": "develop#c566eb6902f378abd59943e7ea09f61e734c8960" 

"indatus/dispatcher": "develop#c566eb6902f378abd59943e7ea09f61e734c8960" 

편집 4 : dev- 접두사를 추가하는 큰 성공을

"require": { 
     "indatus/dispatcher": "dev-develop#c566eb6" 
} 

트릭

답변

21

당신은 직접 끌어 오기 요청을 참조 할 수 없습니다 필요할 수 있습니다,하지만 당신은 항상 특정의 보류 커밋 얻을 수 있습니다. 끌어 오기 요청에서 가져 오는 커밋 해시를 찾아야합니다. (github을 사용하고 있다면 커밋 탭에있다.)

그런 다음 당신은 당신의 composer.json이 같은 것을 사용해야합니다 -

"require": { 
    "mysoftware/thesoftware": "dev-master#3f38376d" 
} 
mysoftware/thesoftware 당신이 사용하는 것이 일반적인 공급 업체/소프트웨어 이름 것입니다

, 그리고에 '#'뒤에 부분 오른쪽은 원하는 커밋 해시입니다.

1

예를했다 : 당신은 단지이 ID를 저지해야합니다. 당신이 this commit to Ardent (Laravel framework, PHP)에 끌어하고 싶은 말은 - 당신이 포크에서 당깁니다

"require": { 
    "laravelbook/ardent": "master#9fbe73399d84fc726dc9e122955de444f4fb4901" 
} 

와 커밋에 강제 할 수 있습니다, 당신은 단지 대신 필요에 그 포크를 지정해야합니다. 예 : 다른 repo의 this is one of my forks 커밋이 얻으려면,이

"require": { 
    "JoeChilds/Swiftlet": "master#effd5c59f398d56fec261cf1d73a7397cdf78a56" 
} 
+0

:'버전 제약 마스터 #의 c566eb6902f378abd59943e7ea09f61e734c8960을 구문 분석 할 수 없습니다 : 잘못된 버전 문자열 "마스터 #의 c566eb6902f378abd59943e7ea09f61e734c8960를"' – Moak

+1

이 공개 REPO인가를? 그렇다면 나를 연결시켜 주시겠습니까? :-) – Joe

+0

https://github.com/valorin/dispatcher/commit/c566eb6902f378abd59943e7ea09f61e734c8960 – Moak

2

제안 된 승인 된 솔루션은 이미 주 저장소에 병합 된 커밋을 다운로드하는 데 사용됩니다.

요청을 받아들이려는 경우 병합하지 않았습니다. 다른 경로를 따라야합니다.

패키지가 vendor/package이고 "RandomUser"가 GitHub에 분기를 만들고, 새 분기 patch-1을 만들고이를 작곡가를 통해 다운로드하려는 일부 편집 내용을 커밋한다고 가정합니다.

그런 다음 composer.json 파일은이 방법으로 작성되어야한다 : 당신이 평소와 같이 패키지를 요청 composer.json 파일의 require 섹션에서

{ 
    "type": "project", 
    "license": "proprietary", 
    "require": { 
     ... 
     "vendor/package": "dev-patch-1#1234567890", 
     ... 
    }, 
    ... 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/RandomUser/Package.git" 
     } 
    ] 
} 

당신이 볼 수 있듯이,하지만 당신은 특정 지점을 추가 dev-patch1 최소 안정성을 dev으로 줄이고 특정 커밋 ID #1234567890을 추가하려면 dev-이라는 접두사를 붙입니다.

다음으로 PR을 위임 한 사용자의 특정 저장소도 추가합니다. 그러면 Composer에서 git 저장소를 다운로드하고 여기에 존재하는 분기를 확인하고 composer.json 파일을 읽고 필요한 종속성을 설치하는 데 사용할 수 있습니다.

나는이 문제를 가지고
관련 문제