1) 나는 DEBS 저장소가
전체 풀 프로세스가에 자동화 할 수 있도록이, [email protected]:user/debs.git
우리는 ssh
URL을 사용하고 있습니다에의이 URL을 가정 해 봅시다 있습니다 섬기는 사람. ssh-keys
은 https
연결을 통해 매번 제공해야하는 username-password
과 달리 git
으로 독자적으로 선택할 수 있으며 ssh 키는 비밀번호 캐싱보다 설정하기가 훨씬 쉽습니다.
여기에 ssh 키가 이미 설정되어 있다고 가정합니다. 동일한 게시물을 보려면 bitbucket 및 github에 대한 게시물을 확인하십시오.
2) 내가 저장소 문서를
은의이의 URL이 [email protected]:user/docs.git
3) 내가 www
폴더에 DEBS에서 포크를 원하는 가정합시다
이 꾸짖 음 d 간단합니다 - www 위치로 가서 git clone을 사용하여 로컬 사본을 만드십시오.
cd www
git clone [email protected]:user/docs.git
FWIW, forking 여기에 올바른 용어 아니다, 그것은 단지 하나 개의 사용자 계정에서 다른의 bitbucket, GitHub의 등의 REPO의 복사본을 생성에 관련이 있습니다.
이 복제본을 www
, 즉모든 코드는 www
direcotry 내에 배치하고,하지 www/debs
디렉토리 내에서)
cd path_to_www_parent
git clone [email protected]:user/docs.git www
4 사용 수정 이름과 directorys
당신이 필요로하는 경우에 문서 저장소에서 파일을 추가합니다 파일 이름을 매번 변경하려면 debs를 일부 위치에 복제하고 파일의 이름을 바꾼 다음 이동하는 것이 좋습니다. 파일의 이름과 디렉토리 경로는 자식의 repo에서와 같은 경우
그렇지 않으면, 당신은 직접
debs
저장소 내에서
git submodule로 문서 저장소를 추가하거나 내에서
subtree로 할 수 있습니다.
git 리포지토리가 코드의 작업 복사본이되도록 파일 이름 등을 동일하게 유지하는 것이 좋습니다. 그런 식으로 서브 모듈로 직접 사용될 수 있으므로 파일 이름 바꾸기 스크립트에 대해 걱정할 필요가 없습니다.
5) 그럼 폴더 및 수정 된 문서 우리는 이미이가 될하려면 위의 단계에서 이상적인 방법을 그 처리했다
WWW 폴더에 폴더 DEBS에서 병합 할 귀하의 경우에 수동으로 코드를 가지고 놀지 않고 다음과 같은 구조를가집니다. 난 당신이 위의 방식으로 모듈을, 간단한 자식 풀은 것입니다 추가하면 뎁 저장소
를 업데이트 할 크론 자동으로 www가 폴더를 끌어 할 webserver
에서
debs #can be the www folder as well
|_code_file_for_debs_1
|_code_file_for_debs_2
|_code_file_for_debs_3
.
.
|_docs #is a git submodule
6) 그들을 업데이트하십시오. 크론 작업이
cd www
git pull
service apache2 graceful #assuming apache is webserver
을 다음과 같이 간단한 스크립트를 수 그리고 이것은 다음과 같은 매 15 분 (오픈의 crontab은 crontab -e
를 사용하여) 작업
*/15 * * * * sh script.sh
또는
*/15 * * * * cd www && git pull && service apache2 graceful
으로 예약 할 수 있습니다
나는 lassian Stash, 나는 debs 폴더에서 www 폴더로 이동할 수있는 방법이 있다는 것을 알고 있습니다. debs 디렉토리의 내용을 변경하면 자동으로 변경 사항을 www 폴더로 푸시합니다. 사실입니까?
아니요, 아무 것도 자동으로 푸시되지 않습니다. git add
을 사용하여 변경된 파일을 추가 한 다음 커밋 한 다음 bitbucket/github 저장소로 밀어 넣어야합니다. 서버에 베어 레포를 설치하고 밀어 넣기 시작할 수 있지만 위의 다른 단계는 변경되지 않습니다. bare repos 설정에 대한 이해를 높이려면 다른 question here에 대한 내 대답을 확인하십시오.이 설정이 작동해야하지만
PS, 당신은 당신을 위해 동일한 기능을 수행 할 cron 작업에 완전히 의존하는 대신 배포 capistrano
또는 다른 도구를 사용하여 조사해야합니다. cap
스크립트의 이점은 배포를 수행해야 할 때만 실행하면되므로 서버가 CPU주기를 낭비하지 않습니다. 동시에 여러 서버에 배포 할 수 있습니다. git pull
등의 문제로 쉽게 해결할 수 있습니다.
아니요, 아무 것도 자동으로 푸시되지 않습니다. 'git add'를 사용하여 변경된 파일을 추가 한 다음'git commit'을 사용하여 변경 한 파일을 커밋해야합니다. –
당신은 어떤 서버입니까? Stash는 Windows, osx에서 사용할 수 있으므로 Linux의 일부 기능을 사용하고 있는지 확실하지 않습니다. –