GitHub에 대한 Git 프로젝트 종속성


14

프레임 워크 위에 PHP 프레임 워크와 CMS를 작성했습니다. CMS는 프레임 워크에 의존하지만 프레임 워크는 CMS 파일 내에 자체 포함 된 폴더로 존재합니다. GitHub에서 별도의 프로젝트로 유지하고 싶지만 프레임 워크를 업데이트 할 때마다 CMS 프로젝트를 업데이트하지 않아도됩니다. 이상적으로는 CMS가 실제로 파일을 커밋하지 않고 미리 정의 된 하위 디렉토리에 포함시키기 위해 프레임 워크 파일을 가져 오기를 원합니다.

Git / GitHub에서 가능합니까? 그렇다면 작동하려면 무엇을 알아야합니까? 나는 Git에 대해 매우 기본적인 수준의 경험을 가지고 있음을 명심하십시오-저장소를 만들고 Eclipse 용 Git 플러그인을 사용하여 커밋하고 GitHub에 연결할 수 있습니다. 나는 현재 프로젝트에서 솔로로 일하고 있기 때문에 지금까지 Git에 대해 더 많이 배울 필요는 없었지만 앞으로 다른 사람들에게 공개하고 싶습니다. 그리고 그것을 올바르게하고 싶습니다.

또한 종속성이있는 프로젝트에 이상적인 워크 플로는 무엇입니까? 그 주제에 대한 팁도 크게 감사하겠습니다. 내 설정에 대한 자세한 정보가 필요하면 의견을 요청하십시오.


git 하위 트리를 여기에서 이야기하십시오 : blogs.atlassian.com/2013/05/…
Nick Nick

답변:


11

먼저 git을 실제로 사용하려면 하위 모듈 기능 사용을 고려하십시오 .

Git의 서브 모듈 지원은 저장소가 외부 프로젝트의 체크 아웃을 서브 디렉토리로 포함 할 수 있도록합니다. 서브 모듈은 자신의 정체성을 유지합니다. 하위 모듈 지원은 하위 모듈 저장소 위치와 커밋 ID 만 저장하므로 포함 프로젝트 ( "superproject")를 복제하는 다른 개발자는 동일한 개정에서 모든 하위 모듈을 쉽게 복제 할 수 있습니다. 수퍼 프로젝트의 부분 체크 아웃이 가능합니다 : Git에게 서브 모듈의 일부 또는 전부를 복제하지 않도록 지시 할 수 있습니다.

링크 된 페이지에는 정확하게 사용하는 방법에 대한 예가 포함 된 자세한 설명이 포함되어 있습니다.

즉, 종속성 관리를 위해 버전 제어 시스템을 사용하지 말고 Maven 또는 Ant 와 같이 이러한 작업을 처리 할 수있는 빌드 도구를 사용하는 것이 좋습니다 . 개발에는 Phing 이라는 PHP 전용 빌드 도구가 있지만 아직 직접 사용하지는 않았습니다. 귀하의 질문에 대해 설명하는 기사에서 Version Control! = Dependency Management를 참조하십시오 .

빌드 도구가 장기적으로 더 적합 할 수있는 이유는 종종 다른 저장소 유형, 외부 라이브러리 (및 다른 위치) 및 광범위한 검사를 지원하기 때문입니다. 그러나이 두 라이브러리를 통합하고 추가 번거 로움을 원하지 않으면 하위 모듈 접근 방식으로 충분합니다.


+1-감사합니다. 나는 Git이 서브 모듈과 같은 것을 가지고 있다고 생각했지만, 그것이 무엇인지 알지 못했습니다. 나는 분명히 Phing을 오랫동안 살펴볼 것입니다. 종속성을 관리하고 단위 테스트를 실행 한 다음 내 사이트에 배포하는 PHP 빌드 도구를 원했습니다. Phing이 아마도 그 모든 것을 할 수있는 것처럼 보입니다. 또한 배우는 데 시간이 조금 걸릴 것 같습니다. Phing의 스크린 캐스트에 대해 잘 알고 있습니까 (Google은 그 점에서 친절하지 않습니다)?
VirtuosiMedia

"하위 모듈 기능"에 대한 링크가 끊어지고 "버전 제어! = 종속성 관리"에 대한 링크가 끊어짐
Ferrybig

6

Git 서브 모듈 은 git 프로젝트 의존성을 관리하는 좋은 방법입니다.

다른 접근법을 찾고 있다면 :

작곡가 가 당신을 위해이 모든 것을 할 수 있습니다. Composer 는 PHP의 의존성 관리자입니다. 구문은 json입니다. 사용하기가 쉽고 쉽습니다.

작곡가에 대한 추가 정보 :

Composer는 PHP의 의존성 관리 도구입니다. 프로젝트에 필요한 종속 라이브러리를 선언하고 프로젝트에 설치합니다.

문서 페이지 , 당신은 당신의 composer.json 파일을 구축 할 것입니다 방법의 예를 찾을 수 있습니다 :

// Composer.json    
{

    "name": "acme/blog",
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/composer/hello-world"
        }
    ],
    "require": {
        "acme/hello-world": "dev-master"
    }
}

프로젝트를 위해 composer.json 및 composer.lock 파일이 생성되면 종속성을 쉽게 설치할 수 있습니다.

composer.phar install 또는 업데이트하십시오. composer.phar update 또는 packagist 에서 특정 프로젝트를 작성하십시오 . composer.phar create-project acmeproject


1

최근에 프로젝트 종속성 관리를 위해 Pundle 이라는 도구를 사용하기 시작했습니다 . PHP 버전, PEAR 패키지, Git 리포지토리 및 SVN 리포지토리를 종속성으로 지원하며 "Pundlefile"을 통해 쉽게 지정할 수 있습니다.

또한 Git / SVN 체크 아웃이 버전 관리 (예 : "공급 업체") 가 아닌 디렉토리에 배치되도록 종속성을 구성해야합니다. 따라서 모든 체크 아웃을 새로 시작하고 프로젝트 저장소를 깔끔하게 유지하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.