2014-04-09 3 views
0

나는 맨손으로 repo를 만든 원격 저장소가 있습니다. 하지만이 repo에 대한 변경 사항을 푸시 할 때 자동으로 git은 \ target 폴더 (작업 저장소)의 .jar 파일을 원격 서버의 특정 폴더에 저장합니다. 내가 그 폴더에 내 작업 사본을두고맨손으로 Git 저장소에서 하나의 파일을 가져 오는 방법은 무엇입니까?

$ cat > hooks/post-receive 
#!/bin/sh 
GIT_WORK_TREE=/home/ubuntu/www/mydomain.com 
export GIT_WORK_TREE 
git checkout -f 

,하지만 지금은이를 변경하려면 단지 특정 파일을 가지고 :

I는 다음과 같이 훅을-후 실행 않았다 모두, myFile.jar

이 스크립트를 수정하려면 어떻게해야합니까?

+0

는 글쎄, 당신은 중간 거기. 이제 항아리가 원하는 위치에 따라 다릅니다! – fge

답변

0

git show을 사용하면 해당 객체에 대한 커밋 -ish 및 경로명을 가져올 수 있습니다.이 커밋 - ish가 참조하는 커밋에 기록됩니다. 객체의 내용을 표준 출력에 기록하여 대상 파일 (생성 및/또는 덮어 쓰기)로 리디렉션해야합니다.

$ cat > hooks/post-receive 
#!/bin/sh 
GIT_WORK_TREE=/home/ubuntu/www/mydomain.com 
export GIT_WORK_TREE 
git show HEAD:path/to/that.jar >"$TARGETDIR"/that.jar 
관련 문제