해답을 찾을 수없는 둥근 모양의 비트. 나는 mysqldumps 데이터베이스, 자식 커밋에 대한 후크가 있고 커밋에 대한 파일을 단계.스테이징이 비어있을 때 git 커밋을 강제로 수행하지만 미리 커밋하면 후크가 파일을 추가합니다.
프로젝트 용으로 Drupal을 실행 중이므로 인터페이스를 통해 많은 설정이 완료되고 데이터베이스에 저장됩니다. 분명히 버전 관리에서 중요한 시점을 캡처하려고합니다.
는 여기에 내가 이것을 시도하고 기본적인 컷 아래 테스트입니다 :
#!/bin/bash
#commit database as point-in-time
SITE_PATH="/data/site.com"
cd $SITE_PATH
FILE_NAME="db/site.sql"
$(mysqldump --skip-extended-insert --skip-dump-date db_name > $FILE_NAME)
#add changed file to commit
$(git add $FILE_NAME)
문제는 개최 할 할 파일의가없는 경우 '스크립트가 실행 이전 커밋하지만, ISN을 커밋이다 완료되었습니다. 나중에 echo $?
을 실행하면 git commit
은 종료 코드가 1로 반환됩니다 (처음에는 준비 파일이 없었기 때문에). git status
을 실행하면 db 덤프가 커밋 준비를 위해 준비되었음을 알 수 있습니다.
커밋을 실행하기 전에 다른 파일을 준비에 추가 한 경우 커밋이 작동합니다.
내가 원하는 것을 수행하는 래퍼를 작성한 다음 모든 항목이 미리 준비된 후에 git commit
을 호출 할 수는 있지만이 상황에 대한 모범 사례를 알려줄 수 있습니까?
위대한, 건배! 나는 이것을 놓쳐 버렸음에 틀림 없어, 맨 엔트리에서 "force"키워드를 찾을 가능성이 가장 큽니다. – aleayr