Git : 저장소에서 자동 가져 오기?
원격 저장소에서 업데이트를 수신하고 무언가 변경 될 때마다 가져 오도록 git을 설정하는 방법이 있습니까? 사용 사례는 git을 사용하여 웹 앱을 배포하고 싶지만 (배포 된 애플리케이션의 버전 제어 권한을 얻습니다) 웹 서버가 아닌 Github에 "중앙"git 저장소를 배치하고 싶습니다 (Github의 인터페이스는 정말 멋집니다). .
이 일을 한 사람이 있습니까? Heroku는 어떻게합니까? 내 Google-fu가 관련 결과를 제공하지 못합니다.
Git에는 다른 작업 후에 실행할 수있는 작업 인 "후크"가 있습니다. 당신이 찾고있는 것은 "post-receive hook"입니다. github 관리자에서 누군가가 리포지토리에 푸시 할 때마다 히트 할 수신 후 URL을 설정할 수 있습니다 (방금 푸시 된 데이터가 포함 된 페이로드 포함).
그만한 가치가있는 것은 자동 풀이 좋은 생각이 아니라고 생각합니다. 문제가 브랜치에 푸시되면 어떻게 될까요? 나는 capistrano그런 것들을 위해 (또는 동등한) 도구를 사용할 것입니다.
유닉스 계열에서는 컴퓨터에서 "git pull"(매일 또는 매주 또는 무엇이든)을 호출하는 크론 작업을 만들 수 있습니다. Windows에서는 작업 스케줄러 또는 "AT"명령을 사용하여 동일한 작업을 수행 할 수 있습니다.
Jenkins 또는 Bamboo와 같은 지속적인 통합 프로그램은 커밋을 감지하고 빌드, 테스트, 패키지 및 배포와 같은 작업을 트리거 할 수 있습니다. 그들은 당신이 원하는 것을 수행하지만 의존성이 무겁고 구성하기가 어려우며 결국 git 저장소에 대한주기적인 검사를 사용할 수 있습니다. 이는 매분 cron으로 git pull을 호출하는 것과 같은 효과를냅니다.
다음을 수행하여이를 달성하는 스크립트를 작성할 수 있습니다.
- 원격 HEAD 커밋 ID 가져 오기
- ID를 로컬 HEAD와 비교
- 서로 다르면 git pull을 사용하고 deploy 명령을 사용하십시오.
- 같은 경우 통과
- 스크립트 실행을위한 크론 작업 작성 (참고 : 중복 실행 방지)
이 질문이 약간 오래되었다는 것을 알고 있지만 Windows 로그와 git을 사용하여 webhook 및 php를 사용하여 프로젝트를 자동으로 가져올 수 있습니다 (프로젝트에 웹 서버가 포함되어 있다고 가정합니다. 여기에서 내 요점을 참조하십시오 : https://gist.github.com/). upggr / a6d92e2808e9628ebe0d01fd93569f4a
참고 URL : https://stackoverflow.com/questions/9978400/git-auto-pull-from-repository
'Programing' 카테고리의 다른 글
| Golang : 텍스트 파일을 읽는 방법? (0) | 2020.10.20 |
|---|---|
| 열거 형 사용 및 유지를위한 모범 사례 (0) | 2020.10.20 |
| 원격 프로 시저 호출과 웹 서비스의 차이점은 무엇입니까? (0) | 2020.10.20 |
| 네이티브 Visual Studio 개발자를위한 유용한 추가 기능 또는 플러그인 (0) | 2020.10.20 |
| Bret Victor의 "Inventing on Principle"강연에서와 같이 라이브 코딩을 지원하는 도구 (0) | 2020.10.20 |