2011-08-27 3 views
4

나는 HTML 5 boilerplate을 기반으로 한 간단한 정적 웹 사이트를 가지고 있으며 모든 것이 github 저장소에 있습니다. 프로젝트 구조는 이 자식 저장소에없는 publish 디렉토리에있는 모든 HTML/CSS/JS를 컴파일하는 것이 내가 빌드 스크립트 (from HTML 5 boilerplate)를 실행 할 것을 기본적으로이특정 디렉토리를 git의 작동중인 분기와 다른 것으로 커밋 할 수 있습니까?

build 
css  
img 
js 
publish # this directory isn't in source control! 

... 

index.html & other files 

같은 것입니다 .

지금 내가하고 싶은 일은 GitHub pages을 사용하고 publish 디렉토리 출력을 GitHub 페이지로 사용할 수 있습니다.

GitHub 페이지의 작동 방식은 최종 콘텐츠가 포함 된 gh-pages이라는 깨끗한 별도의 분기를 만드는 것입니다. 내가 원하는 것은 요청시 현재 publish 디렉토리를 gh-pages 브랜치에 커밋 할 수있게하는 것입니다.하지만이 파일을 기본 저장소 .gitignore에 보관하여 소스 리포지토리에 푸시되지 않도록하고 싶습니다.

프로젝트의 현재 상태를 미리보고 싶습니다.

짧게 :하나의 디렉토리를 별도의 브랜치로 커밋해야하므로 루트는 해당 디렉토리의 내용과 동일합니다. publish/css 그냥 gh-pages 지점의 .gitignore 파일에 publish/ 디렉토리를 넣지 마십시오, 단지 css.gitignore 이후

+0

[내 관련 답변] (http://stackoverflow.com/a/29616287/946850) 및 [writeup] (http://krlmlr.github.io/git-subbranch)을 참조하십시오. – krlmlr

답변

2

뿐만 아니라 버전이있는 gh-pages 분기에 될 것입니다. 루트 디렉토리가 아니라 하위 디렉토리에 일을하고자하고 있기 때문에

ORIG_HEAD="$(git name-rev --name-only HEAD)" git checkout gh-pages && mv publish/* . && git commit -am "automatic update" && git checkout "$ORIG_HEAD" 

그것은 까다로운 않습니다 : 그럼, 당신은 단지 같은 것을 할 수 있습니다. 또 다른 옵션은 동일한 디렉토리의 별도 복제본을 다른 디렉토리에 유지하는 것입니다 (항상 gh-pages 분기에 있음). 당신은 당신의 스크립트가 단지 publish/ 대신 그곳에 파일을 쓰고 그 복제물에 커밋 할 수 있습니다.

+0

저는'publish /'자체를 저장소로 만들고 거기에서 직접 커밋하고 푸시 할 수 있다고 생각합니다. 그렇게하면 훨씬 간단 해집니다. –

+0

사실 수 있습니다. 같은 저장소에 있지 않는 한 저장소가 자체의 하위 모듈이된다는 점에서 문제가되는 것이 없다고 생각합니다. – Amber

관련 문제