2017-05-11 3 views
0

나는 Git에서 기본적으로 힘을 내거나 (일이 잘못 될 때까지 X 지점을 잡아 당기는 일이 없도록한다.) 팀이해야 할 일이 있다면 그것을 풀어주는 방법이 있었는지 궁금했다. 프리 풀 후크 및 명령을 통해 생성하십시오. 무슨 뜻인지의힘내 - 강제적 Embargos

빠른 예 :

- 사용자 A는 인해 개발에 자신의 컴퓨터에서 작동 변화를 푸시합니다.

-User B/Server는 최근의 끌어 오기가 그를 위해 고장 났으며 금수 조치를 요청했습니다.

-user & B 문제가 계속됩니다.

- 그동안 사용자 C는 최근 변경 사항을 가져 오려고합니다. 금수 조치는 그를 위해 건축물을 부수고 일하지 않도록 그를 막아야한다. 내가 직접 대답에 도착하기 전에

답변

1

, 나는 몇 가지를 지적 할 것이다 :

첫째, 작업이 false에서 나쁜 풀 개발자를 중단 할 것이라는 전제를. 최악의 경우 개발자는 이전 상태를 체크 아웃 할 수 있습니다. 그들이 머리가없는 상태에 있고 싶지 않다면, 심지어는 reset을 사용하여 자신의 심판을 이전 상태로 되돌려 놓고 "금수 조치"아이디어보다 더 나빠지 지 않게 할 수 있습니다. 많아야 불편을 끼쳐 드려야합니다.

두 번째로, 이것은 내가 지금까지 기억해내는 기억이 아닙니다. 자주 실행하는 경우 분기, 테스트 및 병합에 대한 정책을 개선하여 공유 분기가 손상된 상태가되는 경우가 드문 경우를 제안합니다.

예를 들어 피쳐 브랜치에서 개발이 수행되면 공유 브랜치를 피쳐로 병합하고 테스트 환경에 결과를로드하여 피쳐를 테스트합니다. 테스트 통과시에만 피쳐가 다시 병합됩니다. 공유 지점 ... 그러면 시나리오가 발생할 가능성이 거의 없습니다.

문제가 드물게 줄어들어 진행 방법에 대한 올바른 결정을 내리는 데 필요한 정보를 제공하는 것이 아니라 개발자를 제한하는 절차를 만드는 데 더 많은 노력을 기울일 가치가없는 것 같습니다.

하지만 아마도 그 모든 것을 설득력있게 찾을 수 있습니다. 그래서 ...

기본 기능이 없습니다.

후크를 사용해 볼 수 있습니다. 그러나 당신은 어떤 고리를 사용하겠습니까? 그리고 그것은 무엇을할까요? 실제로 을 꺼내려면을 잡아 당기지 않으려면 페치를 실제로 막으려면 서버 측 훅이 필요합니다 (객체가 복제본에 있으면 사용자가 자신의 심판을 움직이는 것에 대해 할 수있는 일이 없기 때문에). 가져 오기를 방지하면 아무도 끌 수 없습니다. . 어쨌든 그렇게 할 방법이 없다는 것을 알고 있습니다.

개발자가 정책을 시행하는 것이 아니라 편리하게 사용할 수 있다고 생각하면 클라이언트 측 훅의 조합을 설정하려고 할 수는 있지만 여전히 볼 수는 없습니다. 당신이 원하는 것을하기 위해 함께 모으는 길. (클라이언트 측 훅은 중앙 목록을 참조해야합니다. 그렇지 않으면 "금지"를 부과하거나 들어 올릴 때마다 업데이트해야합니다.기껏해야 이것은 오프라인 작업에 대한 git의 이점을 없애고 일상적인 작업으로 삽입해야하는 복잡성과 같아 보인다.

당신이 할 수있는 가장 가까운 일은, 문제를 발견했을 때, 원격 커밋을 나쁜 커밋 전에 리셋하는 것입니다. 이것은 게시 된 커밋을 리베이스하는 경우에도 효과적이며, 개발자가 처음부터 방지하려고하는만큼 많은 (또는 그 이상) 불편을 초래할 수 있습니다.

제 조언은 계속해서 같은 지점으로 돌아옵니다. 이것은 좋은 생각이 아닙니다. 팀과 의사 소통을하는 것이 더 좋은 생각입니다. "지금 당장이 지점을 당기면 건물이 파괴 될 것입니다"라는 경고를받을 수 있습니다.

+0

답변 해 주셔서 감사합니다. "신사 계약서"와 강제 영토로 밀어 넣으려고했지만 응답을 보면서 다른 어떤 방법을 통해 특정 사항을 저지하고 가장 비용 효율적인 것이 무엇인지 알아 봅니다. – Volvary