다른 프로젝트를 포함하도록 Git 프로젝트를 설정하려면 어떻게해야합니까?Git을 사용하는 프로젝트 내의 프로젝트
예 : 온라인 매핑 앱을 만들고 있습니다. 우리는 SF에서 의상과 함께 GPS 도구를 개발했습니다. 우리는 동시에 Python Geomapping 스크립트를 다른 관심사와 함께 개발했습니다 (Geomapping에만 관심이 있음). 우리 자신의 핵심 파일은이 둘을 하나로 묶어서 필요한 앱을 위해 빌드합니다.
각 프로젝트는 자체적으로 존재해야합니다. GPS에 관심이있는 사람들은 GPS에만 관심이 있지만 다른 모든 프로젝트를 포함하는 "상위"프로젝트는 프로젝트로 액세스 할 수 있어야합니다.
나는 서브 모듈을 이해하려고 노력했지만 시간이 많이 걸렸지 만 필요한 것에 너무 많은 독립성을 가진 것처럼 보입니다.
또한 가능한 경우 각 프로젝트에 하나 또는 두 개의 겹치는 스크립트가 포함될 수 있으면 좋을 것입니다. 하나의 Git 프로젝트가 'root'의 일부가 아닌 파일을 포함 할 수 있으므로이 파일이 어느 팀에서 업데이트 될 때 모두 이익을 얻을 수 있습니까?
힘내와 함께 할 수 있습니까? 의욕과 함께? 호스트 (GitHub, Gitorious)가 중요합니까?
.git 폴더를 무시하고 Git을 프로젝트 (.svn 폴더를 무시함)를 사용하여 Subversion을 '부모'용으로 사용한다는 생각이 들지만 이는 최후의 수단 일뿐입니다.
편집 : 나는 서브 모듈을 원하지 않는 이유
설명하려면 :
사용자가 다운로드- , 우편은 서브 모듈 (here & here)를 포함하지 않는다. 공동 작업자가 프로젝트를 설정하려고 할 때도 마찬가지입니다. 이것은 쇼 마개입니다.
- 서브 모듈은 고정되어 있습니다. 서브 모듈은 가리키고있는 프로젝트의 최신 버전을 (쉽게) 픽업하지 않습니다.
- 아래의 환상적인 답변과이 monologue at NoPugs에 지적 된 다른 이유.
Subtree-merging (아래 Paul이 나에게 소개 함) : 병합 된 프로젝트 내에서 [subtree] 소스를 업데이트하기 어렵고 그 소스는 프로젝트의 '루트'폴더. 웹 응용 프로그램이기 때문에 모든 내 페이지가 내부적으로 폴더 내에 링크되어 있어야하며 테스트 및 업데이트가 해당 폴더에서 직접 수행되어야합니다. (희망이 다른 사람에게 명확하고 유용합니다.) '원격 지점'설정을 공부하고 있지만 다른 아이디어는 여전히 환영합니다.
http://book.git-scm.com/5_submodules.html
http://git-scm.org/gitwiki/GitSubmoduleTutorial
내가 git-submodule에 대한 이유 : a) 작동하지 않을 수 있습니다. GIT Bash는 서브 모듈 추가 명령에 매달려 있습니다. b) 서브 모듈을 독립적으로 업데이트해야합니다. 서브 모듈의 최신 버전을 자동으로 가지고있는 것이 좋습니다. c) 서브 모듈에는 실제 코드 또는 포인터가 있습니까? – SamGoody
Paul - 두 번째 방법에 대한 자습서가 있습니까? 나는 GIT를 충분히 어렵다고 생각하고있다. 또한 하위 프로젝트가 상위 프로젝트 내에 로컬로 저장되는 것이 중요합니까 (수퍼 클래스/클래스/하위 프로젝트 1)? – SamGoody
Subtree 메서드는 별도의 하위 디렉터리에 하위 트리 메서드가 있어야하지만 어느 위치 에나있을 수 있습니다. Git은 개별 파일보다는 전체 프로젝트 트리를 추적하므로 모든 파일 레이아웃이 원격 브랜칭 방법으로 작동합니다. 나는 마지막 방법의 글을 모른다. 하위 트리 방법에 대한 링크를 추가했습니다. – Paul