힘내 : 분기 또는 포크?


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.