2013-09-30 2 views

답변

9

prepare-commit-msg 후크를 사용해보세요. 두 번째 인수는 "커밋이 병합이거나파일이있는 경우 merge"입니다. 0이 아닌 종료 상태는 커밋을 중단합니다.

커밋 메시지가 없기 때문에 빨리 감기 병합과 함께 작동하지 않을 것이라고 생각합니다.

후크에

더 많은 정보 : https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_prepare_commit_msg

+1

자식 병합을 수행 할 때 트리거되지 않는 것 같습니다. 이를 확인하려면 prepare-commit-msg의 맨 위에'exit 1'을 넣고 병합 커밋을 수행하십시오. –

+0

빠른 전진 병합입니까? 병합이 커밋 메시지를 트리거하지 않으면 도움이되지 않습니다. – Kousha

+2

실제 커밋 (메시지) 병합의 경우에도 트리거되지 않습니다. 위에서 설명한 테스트를 시도했습니다 ... 예제로 잘못 입증하게되어 기쁩니다. 그러나이 테스트를 해주십시오. –

0

또 다른 좋은 해결 방법은 쉘 스크립트를 추가 당신이 원하는 것처럼 전화, 을 다음 스크립트에 다음 줄을 추가하는 것입니다 :

git() { 
    if [ "$1" == "merge" ]; then 
     echo "seems to work like a charme" 
    fi 
    command git "[email protected]" 
} 

git "[email protected]" 

는 그런 다음을

alias git="./my-pre-merge-script.sh" 

그럼 잘 해봐. 자신 만의 사전 병합 후크를 추가했습니다. git이 실제 병합 후크에 전달하는 모든 인수에 액세스 할 수는 없지만 파일이나 병합 준비를 준비 할 수는 있습니다. 개인적으로이 접근법에 대해 매우 만족합니다. 사전 병합을 위해 무언가를 찾기 위해 2 ~ 3 일을 보냈습니다. 그런 다음 필요에 부합하지 않는 사전 커밋 메시지를 사용해야했습니다. 이것은 내 모든 문제를 해결합니다. 희망이 미래에 누구에게 도움이됩니다.

관련 문제