힘내 : 분기 또는 포크?


17

두 가지 버전이있는 게임 프로젝트가 있습니다.

  1. 핵심은 게임의 간단한 버전입니다.
  2. 게임의 고급 버전.

공용 저장소에 첫 번째 버전이 있으며이 버전 만 작업 할 것입니다. 두 번째 버전은 내 두 친구와 함께 일할 것입니다. 중요한 부분은 두 버전이 내 저장소에 남아 있기를 원한다는 것입니다.

나는 이것을 위해 분기를 사용할 것이라고 생각했지만 이 질문과 대답을 고려할 때 버전 관리 측면에서 그렇게하는 것은 좋지 않습니다. 내가 아는 한, 자신의 저장소를 포크하는 것은 불가능합니다.

내 옵션은 무엇입니까? 저장소에 두 버전을 모두 유지하려면 어떻게해야합니까?


3
포크는 다른 지점에 저장된 지점입니다.

@MichaelT Ok. 분기는 분기와 같이 특정 시점에 병합되어야합니까?
— Varaquilex

22
포크는 자식 개념이 아니라 자식 개념입니다. 단순히 복제하여 계정에 넣습니다. 따라서 복제는 당신이 찾고있는 것입니다. 참조 stackoverflow.com/questions/6286571/git-fork-is-git-clone
— PDR

@Varaquilex 방법 두 저장소를 단일 저장소에 보관해야합니까? 또한 fork저장소를 사용하면 계정에 새 저장소가 만들어집니다.
— 마흐디

1
단순 모드 또는 고급 모드에서 실행할 수있는 버전이 하나만있는 이유는 무엇입니까? 물론 코드의 일부는 단순하게 만 활성화되고 일부는 고급으로 만 활성화되지만 많은 부분이 공유 될 것이라고 생각합니다.
— bdsl

답변:


11

나 에게는 두 개의 지점이 아닌 두 개의 저장소 가 필요한 것 같습니다 . 브랜치는 단일 리포지토리 내에서 변경 사항을 처리하여 결국 나머지 코드와 병합하기위한 메커니즘입니다.

두 개의 버전의 비슷한 코드베이스를 동일한 저장소에 유지하려면 지점 으로 이동하는 것이 유일한 방법 이지만, 앞에서 언급했듯이 지점 의 주요 목적은 특정 커밋을 분리하는 것입니다 개발 기간 동안 나머지 코드와 충돌하지 않으며 준비가되면 병합합니다.

리포지토리에 두 가지 약간 다른 브랜치 (예 : 동일한 소스 코드의 32 비트 및 64 비트 버전)가있는 경우가 있지만 옵션 인 경우 별도의 리포지토리로 이동하는 것이 좋습니다.


6

"복제 또는 분기해야합니까?"라는 질문에 대한 대답은 "이 프로젝트의 개인 버전을 원합니까?"라는 질문에 대한 대답과 정확히 동일합니다. 예 = 포크, 아니오 = 저장소를 복제합니다.

자식에서 브랜치는 종종 일시적이며 삭제 될 수있는 가벼운 것입니다. github의 포크는 이전 프로젝트를 기반으로하는 새로운 프로젝트입니다. 팀 구성원으로 작업하기 위해 저장소를 복제합니다.

많은 공공 프로젝트는 주요 프로젝트에서 작업 변경을 유지하기 위해 프로젝트를 포크합니다.

2 단계의 경우 프로젝트를 분기 한 다음 작업중인 컴퓨터로 프로젝트를 복제하고 친구도 똑같이하십시오.


내 프로젝트를 어떻게 포크합니까?
— Varaquilex

github에서 저장소를 선택한 다음 포크를 클릭하십시오 (나에게 오른쪽 상단에있는 버튼)
— DwB

그 방법을 알고 있습니다. 자신의 프로젝트를 복제하려고하면 새로 고침 버튼을 누른 것처럼 리포지토리로 리디렉션됩니다. 자신의 프로젝트를 포크하려고 시도한 후 저장소를 찾아 볼 때 추가 저장소가 나열되지 않습니다. 새 레포지토리를 만들고 포크하려는 다른 리포지토리의 내용을 복사 한 다음 다른 사람들과 계속 작업 할 것입니다.
— Varaquilex

0

실제로 원하는 것은 서브 모듈입니다. 첫 번째 리포지토리 (개인용 단순 리포지토리)를 만든 다음이를 고급 버전 리포지토리에 하위 모듈로 추가하면 개인용 리포지토리를 개발할 때 고급 리포지토리의 하위 모듈에 대한 변경 사항을 추적하고 가져올 수 있어야합니다.


1
몇몇 사람들은 -1 Ryan의 답변에 시간을 들였지만 그 이유를 설명하기 위해 시간을 들이지 않았으며, 이러한 행동은 SO의 지침 정신에 위배됩니다. OP의 질문에서 "코어"가 두 트리에서 동일하고 코어 주위에 "간단한"래퍼와 "고급"래퍼가 모두 있다면이 대답은 적어도 합리적입니다.
— Scott Prive

나는 upvoted했지만 그는 아마도 당신과 같은 서브 모듈이 좋은 이유 와 그것이 어떻게 작동하는지 설명하는 설명을 포함해야 할 것입니다. 공통 코드를 서브 모듈로 포함 할 수있는 라이브러리로 분할하는 것이 좋은 생각이지만, 수행하도록 지정하지 않으면 서브 모듈의 제안이 즉시 의미가있는 것처럼 보이지 않습니다.
— Sean Burton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.