1
이전에 커밋 한 후에 적용됩니다. 소스의 버전 번호를 증가시키기 위해 사전 커밋 (pre-commit) 훅을 작성했습니다.이 커밋 된 후 변경 내용이 적용된 이유는 무엇입니까? ? 저지르기 전에 그 일을하기 위해 무엇을 할 수 있습니까?git pre-commit 코드 수정은
#!/bin/sh
# Hook to increment version number before checkin
REPO_DIR=$(cd `dirname $0`/../.. && pwd)
VERS_FILE="${REPO_DIR}/version.php"
CUR_DATE=`date -u '+%Y-%m-%d %H:%M:%S'`
HOOK=`basename $0`
if [ -w ${VERS_FILE} ]; then
# increment last digit of version string
perl -i -pe 's/(\$version\s?=\s?['\''|"][\d\.]+)(\d+)/"$1".($2+1)/e' "${VERS_FILE}"
RV=$?
if [ 0 -ne ${RV} ]; then
echo "ERROR: Updating version in ${VERS_FILE} failed"
exit $RV
fi
echo "INFO: Increment version in file ${VERS_FILE}"
fi
echo "Finish $HOOK at $CUR_DATE"
exit 0
이러한 자동 변경은 권장되지 않습니다. 그러나 기술적으로 이것은 어쨌든 가능해야합니다. 우분투 9.10에서 git 1.6.3.3을 사용하고 있습니다.
도움 주셔서 감사합니다. 스크립트의 마지막에'git add -u - "$ {VERS_FILE}" ''명령을 추가했습니다. 그러나 커밋 메시지에는 파일이 수정 된 것으로 표시되지 않습니다. – StackUnderflow