2009-05-28 3 views
17

제 시나리오에서는 데이터 입력 파일을 분석하고 다른 데이터 출력 파일을 생성하는 프로그램이 있습니다. 나는 프로그램을 제어하는 ​​버전을 원하고 데이터 파일을 제어하는 ​​버전을 원한다. 우선권 문제로 프로그램의 작업 복사본 내에서 데이터 파일의 작업 복사본을 갖고 싶다. 나는 프로그램과 데이터가 "노이즈"를 줄이기 위해 별도로 제어되도록하고 싶다. 이 프로그램에는 데이터 파일에 대한 종속성이 없습니다.git submodules은 작업 복사본에서 작업 복사본을 안전하게 보관할 수있는 유일한 방법입니까?

git submodules를 사용하면 데이터 디렉토리 (예 : 커밋 된 업데이트)에서 문제가 발생하면 프로그램의 버전 컨트롤에 하위 모듈에 대한 업데이트가 있음을 알립니다. 프로그램이 데이터에 의존하지만 유용하지 않은 경우 유용합니다.

그런 시나리오에서는 git submodules를 사용하지 않고 다른 작업 복사본 내에서 작업 복사본을 만들 수 있습니까?

답변

20

단순히 Git에서 작업 복사본을 "중첩"할 수 있습니다. 따라서 프로그램 저장소를 복제하면 내부에서 데이터 파일의 복제본을 만든 다음 독립적으로 처리 할 수 ​​있습니다. Git은 파일 작업을 수행 할 때 을 검색하여 디렉토리 트리에서 .git 디렉토리를 찾고 있으므로 데이터 저장소에서 수행 된 힘내 작업은 프로그램 저장소에 영향을 미치지 않습니다. 이렇게하면 프로그램 저장소의 소음을 줄이기 위해 데이터 디렉토리의 이름을 .gitignore에 추가 할 수 있습니다.

+0

이 말 듣기. 이 방법으로 잘못 될 수있는 것이 있습니까? 아니면 그냥 작동합니까? –

+3

@ChristopherJamesCalo : 특별히 잘못 될 수있는 일에 대해서는 잘 모릅니다. 프로그램 디렉토리에서'git clean -f -x'를 실행하면'.gitignore'에 나타나더라도 전체 데이터 디렉토리를 삭제할 수 있습니다. –

+1

좋은 소리. 오늘 많이 이것을 사용하고 있으며 완벽하게 작동하는 것 같습니다. 감사! –

1

이것은 버전 관리가 필요한 플러그인이있는 상황에서 Heroku 및 레일을 사용하여 작업 할 때 유용한 해결책입니다. 현재 Heroku는 git submodules를 지원하지 않으므로 작업 복사본을 중첩하는 것이 최상의 솔루션 인 것 같습니다. 이 경우 .gitignore에 플러그인 디렉토리를 추가하고 싶지는 않습니다.이 경우에는 heroku로 푸시 할 때 플러그인을 업로드하지 못하기 때문에, se la vi. 바라건대, Heroku는 결국 git submodules를 지원할 것입니다.

관련 문제