[github] GitHub : 공개 저장소 포크를 비공개로 만드는 방법은 무엇입니까?

공용 저장소를 포크로 만들 수 있지만 포크를 개인용으로 만들려면 어떻게해야합니까? 개인 리포지토리를 지원하기위한 구독이 있습니다.



답변

대답은 정확하지만 공개 리포지토리와 포크 사이에서 코드를 동기화하는 방법은 언급하지 않았습니다.

전체 워크 플로우는 다음과 같습니다 ( React Native 를 오픈 소싱하기 전에이 작업을 수행함 ).


먼저 다른 사람들이 말한 것처럼 repo를 복제하십시오 (자세한 내용은 여기 참조 ).

Github UIprivate-repo 를 통해 새로운 리포지토리 (호출하자 )를 만듭니다 . 그때:

git clone --bare https://github.com/exampleuser/public-repo.git
cd public-repo.git
git push --mirror https://github.com/yourname/private-repo.git
cd ..
rm -rf public-repo.git

개인 저장소를 복제하여 작업 할 수 있습니다.

git clone https://github.com/yourname/private-repo.git
cd private-repo
make some changes
git commit
git push origin master

공개 리포지토리에서 새로운 인기를 얻으려면 :

cd private-repo
git remote add public https://github.com/exampleuser/public-repo.git
git pull public master # Creates a merge commit
git push origin master

멋진 비공개 리포지토리에 공개 리포지토리의 최신 코드와 변경 사항이 추가되었습니다.


마지막으로 끌어 오기 요청 개인 저장소-> 공용 저장소를 작성하려면 다음을 수행하십시오.

GitHub UI를 사용하여 공개 리포지토리 포크 (공개 리포지토리 페이지 오른쪽 상단에있는 작은 “포크”단추)를 만듭니다. 그때:

git clone https://github.com/yourname/the-fork.git
cd the-fork
git remote add private_repo_yourname https://github.com/yourname/private-repo.git
git checkout -b pull_request_yourname
git pull private_repo_yourname master
git push origin pull_request_yourname

이제 여기에 설명 된대로 Github UI를 통해 공개 리포지토리에 대한 풀 요청을 만들 수 있습니다 .

프로젝트 소유자가 풀 요청을 검토 한 후 병합 할 수 있습니다.

물론 전체 프로세스를 반복 할 수 있습니다 (리모컨을 추가하는 단계는 생략).


답변

이제 옵션이 하나 더 있습니다 (2015 년 1 월)

  1. 새로운 개인 저장소 만들기
  2. 빈 저장소 화면에는 “가져 오기”옵션 / 버튼이 있습니다
    여기에 이미지 설명을 입력하십시오
  3. 그것을 클릭하고 기존 github repo url을 넣으십시오 github 옵션 언급은 없지만 github repos에서도 작동합니다.
    여기에 이미지 설명을 입력하십시오
  4. 끝난

답변

현재 답변은 약간 구식이므로 명확성을 기합니다.

짧은 대답은 다음과 같습니다.

  1. 공개 리포지토리 의 베어 클론 을 수행하십시오.
  2. 새로운 개인 계정을 만듭니다.
  3. 새로운 개인 에게 거울 밀기 .

이것은 GitHub에 문서화되어 있습니다 : duplicating-a-repository


답변

당신은 레포를 복제해야합니다

이 문서를 볼 수 있습니다 (github에서)

분기하지 않고 리포지토리의 복제본을 만들려면 원래 리포지토리에 대해 특수 복제 명령을 실행하고 새 복제본을 미러 푸시해야합니다.

다음과 같은 경우 exampleuser / new-repository 또는 exampleuser / mirrored와 같이 푸시하려는 리포지토리가 GitHub에 이미 존재해야합니다. 자세한 정보는 “새 저장소 작성”을 참조하십시오.

리포지토리 미러링

정확하게 복제하려면 베어 클론과 미러 푸시를 모두 수행해야합니다.

명령 행을 열고 다음 명령을 입력하십시오.

$ git clone --bare https://github.com/exampleuser/old-repository.git
# Make a bare clone of the repository

$ cd old-repository.git
$ git push --mirror https://github.com/exampleuser/new-repository.git
# Mirror-push to the new repository

$ cd ..
$ rm -rf old-repository.git
# Remove our temporary local repository

원본에서 업데이트를받는 것을 포함하여 다른 위치에 리포지토리를 미러링하려는 경우 미러를 복제하고 주기적으로 변경 사항을 적용 할 수 있습니다.

$ git clone --mirror https://github.com/exampleuser/repository-to-mirror.git
# Make a bare mirrored clone of the repository

$ cd repository-to-mirror.git
$ git remote set-url --push origin https://github.com/exampleuser/mirrored
# Set the push location to your mirror

베어 클론과 마찬가지로 미러 클론에는 모든 원격 분기 및 태그가 포함되지만 페치 할 때마다 모든 로컬 참조를 덮어 쓰므로 항상 원본 리포지토리와 동일합니다. 푸시에 대한 URL을 설정하면 미러로 간단하게 푸시 할 수 있습니다. 미러를 업데이트하려면 업데이트를 가져 와서 푸시하십시오. 크론 작업을 실행하여 자동화 할 수 있습니다.

$ git fetch -p origin
$ git push --mirror

https://help.github.com/articles/duplicating-a-repository


답변

GitHub는 이제 새로운 가져 오기 저장소를 공개 또는 비공개로 원하는 것을 선택할 수있는 가져 오기 옵션을 제공합니다.

Github 리포지토리 가져 오기


답변