2013-06-22 3 views
3

Git 위에 통합 후크를 제공하여 통합이 실패 할 때 푸시가 거부되도록하고 싶습니다. 예를 들어 개발자가 변경 내용을 푸시하면 프로젝트가 여전히 성공적으로 컴파일되는지 확인하고 싶습니다.Git과의 지속적인 통합

현재 업데이트 확인 후크를 설정하여 컴파일 검사를 수행합니다. 내가 푸시를 거부 할 때, 나는 변경 사항을 되돌릴 그것에 대해 개발자에게 알려 :

git revert --no-edit HEAD 
echo "Rejected !" 

내 문제가 또 다른 개발자가 자신의 변경을 추진하고자 할 때, 그는 그의 작품을 무시 첫 따라서 잡아 가지고와 그러면 병합 재설정을위한 고통스러운 재설정/은닉 명령을 발행해야합니다.
또한, 되돌리기 대신 서버에 복귀, 나는 기본 인 (다른 지점의 변경 내용을 병합하는 것이

나의 현재 해결 방법은 (-m 옵션을 필요로하는) ​​지점 병합의 경우에는 작동하지 않습니다 풀 개발자) :

git checkout integrated 
git merge master 

이 목표를 달성하는 가장 좋은 방법은 무엇입니까?

+0

개발자가 테스트 스위트를 로컬에서 실행할 수 있습니다. 당신은 pre-commit hook을 사용하여 이것을 자동화 할 수 있습니다. 어쨌든 오류가 발생하면 일반적인 되돌리기 커밋 또는 커밋을 수정하여 그대로 살기 만하면됩니다. CI가 나에게 아주 나쁜 생각처럼 들리도록 허용되기 전에 실행해야하기 때문에 푸싱은 몇 분 동안 지속됩니다. – innaM

답변

2

가장 좋은 접근법은 개발자에게 컴파일을 확인한 후 업데이트 된 후크가있는 고유 한 기능 브랜치를 제공하는 것입니다 (이 모든 편집증으로 이동하려면 다른 편집자에게 수동으로 마스터하기 위해 병합하는 분기). 이렇게하면 거부당하는 것에 대해 걱정할 필요가 없습니다. 제 생각에는 주인은 모든 사람이 모든 것을 푸시하는 것이 아닌, 참조 지점 인 릴리스 지점으로 만 사용해야합니다.

+1

아마도 OP는 젠킨스를 사용하여 조사해야합니다. "빌드 전 병합"을 사용하여이 시나리오를 지원하도록 설정할 수있는 것 같습니다. https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-AdvancedFeatures –

+0

글쎄, 그는 자신의 질문에 사용했지만 젠킨스도 사용할 수 있다고 말했다. – Learath2

+0

고마워요! 나는 여분의 의존성을 피하기를 원했지만 어쩌면 젠킨스가 옳은 일이다. – 3XX0