2010-01-04 4 views
2

우리 팀에서는 일반적으로 모든 작업을 별도의 브랜치로 푸시하고 릴리스 관리자가 브랜치를 검토 한 후이를 '마스터'브랜치에 병합합니다.Git post-receive - 푸시 된 브랜치가 마스터와 병합되었는지 확인하는 방법

가끔씩 팀원이 분기를 마스터 분기 (병합하기 전에)에 병합하는 것을 잊어 버렸습니다. 그래서 내가하려는 것은 사용자 푸시 후 "마스터와 병합하십시오."라는 메시지를 출력합니다. 원격에서 후 수신 후크 .. 몇 가지 예가 있습니까? .. 또는 내가 기본적으로 무엇을해야합니까?

업데이트 : 이것에 대한 주요 이유 - 잠재적 인 충돌의 수를 최소화 (커미터 이후 (안 해제 - 관리자)를 해결합니다) 당신은 정말 골 교차 병합을 유지하지 않으

답변

2

git cherry new-branch master에 출력이 있으면 누군가 밀어 넣기 전에 리베이스하지 않았습니다.

0

. 주제 분기가 마스터에 병합되어야하거나 분기가 별도로 남아 있어야 부터까지의 마스터가 병합되어야합니다.

아마도 푸시되기 전에 브랜치가 마스터에 리베이스되기 때문에 잠재적 인 충돌의 수가 최소화됩니다. 왜냐하면 참여자가 이미 대부분을 해결했기 때문입니다.

+0

정확하게 - 내가 원하는 것은 - 충돌 횟수를 최소화하는 것입니다. –

1

"마스터와 병합"한다고 가정 할 때 실제로 리베이스가 마스터 위에 있음을 의미합니다.

모든 개발자는해야

  • 풀 마스터는
  • 빨리 감기를하기 위해 릴리스 관리자에 대해 순서대로

을 추진하기 전에 마스터의 상단에 자사의 지점을 리베이스에만 병합 지점을 검토 한 후
충돌이 발생하면 동일한 릴리스 관리자가 개발자에게 다시 마스터를 가져오고 리베이스를 수행하도록 요청해야합니다.
그런 식으로, 릴리스 관리자가 아닌 개발자 만이 충돌을 해결할 책임이 있습니다.

는 "빨리 감기가"의 출력의 일부인 경우 내가 주인에게 병합을 수행하려고 할 중앙 update hook로 이동하고 확인 것, 자동 프로세스에 대한


rebase vs. merge을 참조하십시오 명령. 그렇지 않으면 후크는 git send-email으로 실패합니다.
나는 현재이 스크립트에 대한 예제가 없습니다.

+0

그래, 그게 내가 성취하려고하는 것입니다.하지만 개발자는 마스터와 리베이스를 잊어 버리는 것을 잊어 버렸습니다. 이 작업을 수행 –

1

실제로이 작업을 수행하는 좋은 방법은 없습니다. 몇 가지 복잡한 점이 있지만 가장 명백한 것은 리스터 - 마스터/푸시 - 투 - 마스터 작업이 원자 적이지 않다는 것입니다. 나는. 누군가 뭔가를 중간에 밀 수도 있습니다. 차라리 예를 들면 다음과 같이 제안 할 것입니다. Gitorious은 릴리스 관리자의 작업을 훨씬 쉽게 만듭니다. 그는 커밋에 포함 된 내용을 쉽게 볼 수 있으며 커밋을 수락하거나 거부 할 수 있습니다.

하지만 git-wtf이 도움이 될 수 있습니다. 자동화 된 솔루션을 계속 시도한다면 로컬 저장소와 원격 저장소를 비교하는 방법을 보여줍니다.