개인 Github 리포지토리의 공동 작업자가 각 리포지를 포크해야합니까?


15

현재 프로젝트를 진행 중이며 공동 개발자 인 Github의 개인 저장소에 소스 코드가 있습니다.

확실하지 않은 것은 각 작업을 분리하는 방법입니다.

우리가해야 할 일은 :

  1. 우리 각자는 저장소를 포크해야합니다.
  2. 코드를 푸시 할 준비가되면 프로젝트 리더의 리포지토리에 풀 요청을 제출합니다.이 요청을 동시에 코드 검토를 수행 할 수있는 기회로 사용할 수 있습니다.

개인 리포지토리와 관련하여 포크가 사용되어야합니까, 아니면 상황을 지나치게 복잡하게합니까?


1
예. 여기서 제안한대로 팀을 만들고 팀의 리포지토리를 "마스터"리포지토리로 만듭니다. 프로젝트 리더를 포함하여 모두가 PR을 만듭니다.
RubberDuck December

답변:


7

저장소를 개발자의 로컬 컴퓨터에 복제하는 것은 이미 일종의 포크입니다. 각 개발자가 GitHub에서 저장소를 분기하면 현재 작업 상태 만 게시하는 역할 만합니다.

중앙 마스터 리포지토리와 해당 리포지토리에 직접 액세스 할 수없는 많은 기고자가있는 경우에 적합 할 수 있습니다. 이것은 모든 사람이 풀 요청에 기여하고 발행 할 수있는 오픈 소스 프로젝트에 유용합니다. 그런 다음 핵심 유지 관리 그룹이 검토하고 병합합니다. 다중 저장소를 사용하면 풀 요청 기반 워크 플로가 적용됩니다.

작고 신뢰할 수있는 팀에서는 필요하지 않습니다. 서로 다른 사람들이 서로를 방해하지 않도록하기 위해 Git Flow와 같은 전략을 따를 수 있습니다. 각각의 작은 기능은 별도의 기능 지점에서 구현됩니다. 기능이 완료되면 마스터 브랜치로 병합됩니다. 대부분의 팀은이를 규칙에 따라 풀 요청 또는 코드 검토와 결합하지만 적절한 경우이를 건너 뛸 수있을 정도로 신뢰할 수 있습니다. 개별 리포지토리는 개발자가 포크 상태이지만 팀이 볼 수있는 리포지토리에 현재 상태를 게시하게하는 반면 단일 리포지토리에서는 변경 사항을 별도의 기능 지점으로 푸시합니다. 마스터 / 트렁크에서 모든 개발을 수행하는 것은 대부분의 워크 플로에서 권장되지 않습니다.

차이점은 액세스 관리에만 국한되며 구현 된 워크 플로에는 그다지 중요하지 않습니다. 둘 중 하나의 설정으로 풀 요청 기반 워크 플로우를 수행 할 수 있습니다. 원시 Git 관점에서 볼 때 포크와 브랜치 사이에는 큰 차이가 없습니다. 두 가지 접근 방식은 본질적으로 프로젝트 기록을 공유하고 다른 브랜치 / 포크에 영향을 미치지 않고 커밋을 추가 할 수 있습니다. 이를 고려하면 신뢰할 수 있고 닫힌 그룹에있을 때 단일 리포지를 공유하는 것이 훨씬 좋습니다.


1
@amon이 말한 것을 신속하게 에코하기 위해 모든 개발자가 기본 리포지토리에서 포크 해야하는 조직에서 일했습니다. 우리 모두는 불필요하고 서투른 추가 단계라고 생각했습니다. 왜 그것이 필요한지 이해하지 못했지만 우리의 작전 팀은 이에 대해 논의하지 않았습니다. 프로세스는 커밋-> 푸시-> 풀 요청-> 대기-> 더 기다림-> ops 팀의 IRC에 대한 관심을 얻으려고 시도-> ops 사람들에게 걸어 가서 pull 요청을 보도록 요청하십시오. 대기-> 코드 통합-> 반복.
DaveyDaveDave 23시 46 분

1
이 워크 플로를 권장하지 않습니다. 나는 두 개발자와 정규 리포지토리로 직접 밀고있는 심각한 병합 충돌을 경험했습니다. 말할 것도없이 다른 사람이 코드를 검토하도록하는 것이 가장 좋습니다. 각각 포크가 있고 표준 프로젝트 저장소가 하나 있으면 풀 요청을 제출하는 것이 훨씬 쉽습니다. 그래 그래 나는 그것이 "배포되지"않았다는 것을 안다. 도대체 무엇이. 포크 & PR 모델은 내 경험에서 더 잘 작동합니다.
RubberDuck

@RubberDuck은 좋은 지적입니다. 풀 요청을 담당하는 사람들이 코드를 검토 할 수있는 위치에 있지 않다는 점에서 저의 경우는 드문 것 같습니다. gerrit과 같은 코드 검토를위한 다른 전용 도구를 제안하는 것이 더 효과적 일 수 있지만 포크가 비슷하게 작동 할 수 있다는 점에주의를 기울입니다.
DaveyDaveDave

문제는 누가 기능이 마스터로 들어갈 준비가되었는지 결정하는 것입니다. 또한 브랜치로 작업하는 것이 지저분합니다. 하나의 리포지토리에있는 수백 가지의 브랜치가 대부분 병합 또는 반 완료되었는데 병합 할 준비가되지 않은 이유는 무엇입니까? 액세스 관리는 워크 플로에 대해 100 %이며이 답변은 절반에 지나지 않습니다.
Rudolf Olah 2016 년

5

이것은 작동하거나 각 contrib에 자체 분기가 있고 팀이 동의 할 때 마스터와 병합되는 분기 방법을 사용할 수 있습니다.


고마워, 자세한 내용은 다른 답변과 함께 갈 것입니다, 그렇습니다 나는 동의합니다 :)
JMK
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.