매주마다 프로젝트 변경 사항을 git으로 커밋하는 cron 작업을 작성하는 방법


8

내 프로젝트의 변경 사항을 기록하는 목적으로 git을 사용하고 있습니다. 나는 그것이 이상적인 사용법이 아니라는 것을 이해하지만 내가 간결하게하기 위해 여러 가지 이유로 내가 선택한 사용법 패턴이라는 것을 알고 있습니다.

매일 또는 매주 저장소에 변경 사항을 커밋하는 cron 작업을 어떻게 작성합니까?

Ubuntu 10.10에서 최신 버전의 git을 사용하고 있습니다.

답변:


9
0 20 * * 0 /path_to_script

그러면 /path_to_script'매주 일요일 오전 20:00에 지정된 (replace ) 명령이 실행 됩니다. 크론 작업 구문은 매우 간단 하며 코드 위치를 기억하지 않고 작업을 생성하는 데 도움이 되는 매끄러운 도구 가 있습니다.

이 경우 명령은 커밋을 실행하는 스크립트 여야합니다. 필자의 경우 클론 디렉토리로 변경하고 커밋을 실행하는 빠른 쉘 스크립트를 작성하는 것이 가장 쉬운 방법이라고 생각합니다. 에 파일을 ~/commit.sh만들고 그것을 넣으십시오 ( /location/of/clone물론 대체 )


#!/bin/sh
cd /location/of/clone
git-commit -m "commit message, to avoid being prompted interactively"

그런 다음 chmod +x ~/commit.sh실행 가능하게 만들고 cron 작업이 실행되도록하십시오 (을 사용하는 대신 전체 경로로 참조 ~).


좋은 대답입니다. 컴퓨터가 지정된 시간 (예 : 일요일 20:00)에 실행중인 경우에만 cronjob이 실행됩니다.
pableu

어떻게 서버에 푸시 할 수 있습니까?
Jason

또한 내가 추가 한 파일을 추가하려면 어떻게합니까
Jason

스크립트에 git-push를 추가하여 서버로 푸시하십시오. -a 옵션을 사용하여 git-commit을 사용하여 수정되거나 삭제 된 모든 파일을 자동으로 추가 할 수 있습니다.
jcrawfordor

1
-acommit 명령 에 a를 추가하지 않으려면 준비 영역에 이미 추적 된 모든 파일을 자동으로 추가합니까?
Dr.

2

실행 crontab -e하여 사용자 cronjob을 편집하고 다음 행을 삽입하십시오.

0 20 * * 0 (cd /path/to/myproject && git add . && git commit -m "Automatic Commit" && git push)

물론 작동하는 원격 저장소를 포함하여 GIT 저장소를 설정해야하지만이 질문의 범위는 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.