2011-11-02 3 views
65

저는 하나의 브랜치 (master) 만 포함하는 GitHub 레포에 공개 PHP 프로젝트를 가지고 있습니다.GitHub에 공개 저장소의 사설 지회가 있습니까?

나에게 개인적인 분기/포크를 갖고 싶습니다 (개인 GitHub repos를 지불했습니다). 사설 지사/포크의 변경 사항을 공용 저장소에 병합하고 그 반대의 경우도 마찬가지입니다. 그걸 염두에두고

, 여기 내 질문은 :

  1. 내가 공공의 repo에 사설을 가질 수 있습니까?
  2. 내 개인 저장소/포크에 내 자신의 공개 Repo를 포킹 할 수 있습니까?
  3. 위의 두 가지 경우 모두 가능합니다. 앞으로 나아갈 수있는 가장 좋은 방법은 무엇입니까? 둘 다 아니라면 어떻게해야합니까?
+1

공개 저장소를 개인 저장소로 포크하는 것이 가장 좋지 않습니다. 공개 저장소에 푸시 (백)하지 않는 여러 가지 분기를 만들고 그 반대의 경우도 마찬가지입니까? – Legolas

+0

그게 내가 물어 보는 것, 내가 공공 repo의 사본을 만들 수 있지만 내 업데이 트가 공개되고 싶지 않다면 (내가 특정 일을 공개적으로 푸시하지 않는 한) – Lizard

+0

http://24ways.org/2013/keeping -parts-of-your-codebase-private-on-github/ – assylias

답변

66

은 공공의 repo에 사설을 할 수 있습니까?

GitHub에서 저장소는 공개 또는 비공개입니다. 단지 지사를 선택적으로 "사유화"할 수는 없습니다.

내 개인 저장소/포크에 내 공개 Repo를 포킹 할 수 있습니까?

당신은 필요에 따라 로컬 컴퓨터, 지점에 공개 REPO를 복제, 단순히 상류 당신의 "개인"가지를 밀어 수 없습니다 (원점 밀어 지점을 지정하여 : git push origin master 또는 git push origin branch-i-want-to-be-public:master).

앞으로 나아가는 가장 좋은 방법은 무엇입니까/어떻게 진행해야합니까? 전용 버전을 복제 한 후, I가 "개인"새로운 포크의 설정을 변경 GitHub의에서 공개 분기를 분기 제안 모두 공개 및 개인 발전을위한 GitHub의 활용, 그리고하기 위해

로컬 컴퓨터로 내려. 변경 사항을 공개 할 준비가되면 GitHub의 개인 포크로 모든 것을 올린 다음 pull requests을 사용하여 브랜치를 공용 저장소로 선택적으로 복사합니다.

GitHub에서 저장소를 비공개로 설정하려면 (유료) 계정을 업그레이드해야합니다. 무료 계정을 잠그고있는 중이라면 개인 컴퓨터에 브랜치를 공개하지 않고 — 복제본을 로컬 컴퓨터, 분기점에 공개하고 특정 "공개"지점을 —으로 푸시하는 첫 번째 프로세스를 계속 사용할 수 있습니다.

유료 GitHub 계정이 있거나 공공 및 민간 포크 및 푸시 요청 (예 : BitBucket)을 제공하는 다른 서비스를 사용하는 경우 위의 방법 중 하나를 사용하여 코드를 공개 할 수 있습니다.

+15

GitHub에서는 공개 레포의 포크를 비공개로 설정할 수 없습니다. 비공개로 만들려면 repo를 복제해야합니다. 그러면 공개 Repo와의 연결이 끊어집니다. 개인 repo의 로컬 복제본에 별도의 원격 저장소로 공용 저장소를 추가 할 수 있는지 궁금합니다. 그런 다음 해당 리모컨으로 분기를 푸시합니다. – mj1531

+0

방금 ​​해 보았습니다. 그것은 작동합니다! – mj1531

+0

이것은 불행히도 풀 요청을 사용하여 개인 "포크"에서 저장소의 공용 복사본으로 변경 내용을 가져올 수 없다는 것을 의미합니다. –

1

1.)이 가능 아니, 내가 아는 바로는 공공의 repo

에 사설을하는 것입니다.

2.) 난 내 자신의 사설

없음으로 내 자신 공공의 repo를 포크 할 수, 당신은 하나의 지점으로 전체의 repo (1-n 개의 지점)를 포크 할 수 없습니다. 당신이 전체 repo의 한 지점을 포크한다면 실제로 실제로 할 수 있습니다. 그냥 리모컨으로 추가하거나 클론에서 시작하십시오.

Sparse checkouts에 관심이있을 수 있습니다.

3) 위의 (가) 가능 모두/앞으로 가장 좋은 방법

N 인 경우

4) 어느 쪽도 가능 어떻게 진행 안하면?

N /A

24
  1. Duplicate your repo.
  2. GitHub에서 복제본을 비공개로 만듭니다. 그 새에 공개 REPO위한 커밋과
  3. 푸시 지점 :
  4. 복제
  5. 가 공개의 repo에 원격 추가 컴퓨터에 개인의 repo (... 원격 공용 [email protected]를 추가 이눔) public remote.
  6. 'git fetch public'을 사용하여 공개 repo에 대한 변경 사항을 가져 와서 로컬로 병합하고 개인 repo (origin remote)로 푸시 할 수 있습니다.
+0

복제는 나에게 잘 작동하지만 반대 순서로 먼저 수행해야합니다. 먼저 개인 repo를 만든 다음 명령 줄에서 공용 repo를 복제해야합니다. 감사! – Joel

관련 문제