공용 저장소를 포크로 만들 수 있지만 포크를 개인용으로 만들려면 어떻게해야합니까? 개인 리포지토리를 지원하기위한 구독이 있습니다.
공용 저장소를 포크로 만들 수 있지만 포크를 개인용으로 만들려면 어떻게해야합니까? 개인 리포지토리를 지원하기위한 구독이 있습니다.
답변:
대답은 정확하지만 공개 리포지토리와 포크 사이에서 코드를 동기화하는 방법은 언급하지 않았습니다.
전체 워크 플로우는 다음과 같습니다 ( 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를 통해 공개 리포지토리에 대한 풀 요청을 만들 수 있습니다 .
프로젝트 소유자가 풀 요청을 검토 한 후 병합 할 수 있습니다.
물론 전체 프로세스를 반복 할 수 있습니다 (리모컨을 추가하는 단계는 생략).
git clone
원격 추적 분기를 설정하고 복제 된 저장소의 다른 구성은 실제로 원하지 않습니다. --bare clone은 .git dir을 원격에서 그대로 복사합니다.
git status
내가 변경 한 내용에 관계없이 작업 트리를 최신 상태로 유지합니다. 결과적으로 나는 커밋하고 밀어 넣을 수 없습니다. 나는 이것을 시도하기 위해 2 번 더 만든 새로운 개인 저장소를 삭제했지만이 같은 문제가 계속 발생했습니다. 어떤 제안?
이제 옵션이 하나 더 있습니다 (2015 년 1 월)
현재 답변은 약간 구식이므로 명확성을 기합니다.
짧은 대답은 다음과 같습니다.
이것은 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