program tip

읽기 전용 git 클론을 github에서 forked로 변환하는 방법

radiobox 2020. 10. 8. 07:51
반응형

읽기 전용 git 클론을 github에서 forked로 변환하는 방법


가끔이 문제가 발생합니다.

몇 가지 문제가 발생했기 때문에 레일의 소스 코드를 읽기 위해 다음을 수행했다고 가정 해 보겠습니다.

git clone git://github.com/rails/rails.git

연구하는 동안 나는 무언가를 테스트했고 이제 Rails 핵심 팀이 살펴 보길 원하는 수정 사항이 있습니다. 변경 사항을 분기 된 레일 버전으로 푸시하려면 어떻게합니까?

복제 할 때 분기 된 버전이 아니라 읽기 전용 버전을 복제 한 것을 기억하십시오.

나는 포크에 반대하는 것이 아닙니다. 가끔은 그냥 찾아보고 뭔가를 추가하고 싶을 때가 있습니다.


저장소를 복제하면 복제 한 저장소 origin를 참조 하는 원격 호출 자동으로 설정됩니다 . 이것은 이제 업스트림 Rails 프로젝트를 가리키고 있지만 필요한 것은 푸시 할 수있는 자체 포크를 만든 다음 푸시 할 수 있도록 거기를 가리키는 원격을 설정하는 것입니다.

첫 번째 단계는 업스트림 GitHub 프로젝트 페이지에서 "포크"버튼을 클릭하는 것입니다 ( 포킹에 대한 GitHub 지침의 그림 ).

GitHub 포크 버튼

그런 다음 해당 저장소의 URL을 찾아 복사하십시오. 읽기 및 쓰기 액세스 권한이있는 SSH URL을 사용해야합니다. git@github.com:nadal/rails.git사용자 이름이라고 가정하면 다음과 같아야합니다 nadal.

이제 Git이 원격 저장소를 추적 할 수 있도록 원격 저장소를 만들 수 있으며 액세스 권한에 따라 가져 오거나 푸시 할 수 있습니다. origin푸시 할 대상 (설정 한 사람 수)으로 교체 하거나 origin업스트림을 가리 키도록 두고 대신 새 리모컨을 만들 수 있습니다. 첫 번째 설정을 수행하는 방법을 보여 드리겠습니다. 두 번째는 쉽게 알아낼 수 있어야합니다.

originGitHub에서 포크를 가리 키도록 변경하려면 업스트림 브랜치를 어딘가에 유지하고 싶을 것이므로 이름을 upstream다음 과 같이 변경하십시오 .

git remote rename origin upstream

이제 포크를 가리키는 새 원격을 만듭니다.

git remote add -f origin git@github.com:nadal/rails.git

이제 새 포크로 푸시 할 수 있습니다.

git push origin master

GitHub에 푸시 한 변경 사항에 만족하고 Rails 팀의 누군가가이를 보길 원하면 두 가지 선택이 있습니다. 하나는 GitHub를 사용하여 pull 요청보내는 것입니다 . 방법은 문서를 참조하십시오. 그러나 작은 패치가 하나 또는 몇 개만있는 경우 Rails 팀은 Lighthouse 티켓만들고 패치를 첨부 하는 것을 선호합니다 . 자세한 내용은 Rails기여 하는 방법에 대한 지침 을 참조하십시오.

편집 여기에 무슨 일이 일어나고 있는지 나타내는 다이어그램이 있습니다. 당신이 한 일은 단순히 upstream rails repo를 복제하는 것입니다. 그래서 지금 당신을 의미 자신의 컴퓨터에 자신의 repo이 git://github.com/rails/rails.git같은 origin:

Github : git : //github.com/rails/rails.git
                    ^
                    |
리모컨 : 원산지
                    |
귀하의 기계 : 레일 /

다음은 포크 한 다음 포크를 복제하면 얻을 수있는 것입니다.

Github : git : //github.com/rails/rails.git <-git@github.com : nadal / rails.git
                                                           ^
                                                           |
리모컨 : 원산지
                                                           |
귀하의 기계 : 레일 /

내 지침을 따르면 다음과 같은 결과를 얻을 수 있습니다.

Github : git : //github.com/rails/rails.git <-git@github.com : nadal / rails.git
                        ^ ^
                        | |
리모컨 : 업스트림 출처
                        | |
컴퓨터 : \ ------------------------------- rails /

이는 포크로 얻는 버전과 비슷하지만, upstream원격이 있으므로 공식 변경 사항을 추적하고 코드에 병합 할 수 있습니다 (포크 버전을 만든 경우 upstream원격을 다음과 같이 추가 할 수 있습니다. 잘).


복제 모드에서 분기 모드로 전환하는 매우 쉬운 방법 hubhttp://hub.github.com/래퍼를 사용하는 것 입니다.

이것이 설치되면 실행하십시오

hub fork

읽기 전용 복제본 내에서.


그것은 중요하지 않습니다. 원하는 경우 포크되지 않은 저장소를 지정하여 다른 원격을 추가 할 수 있습니다. 변경 사항을 적용하십시오.


또는 포크를 원하지 않는 경우 유지 관리 팀에 따라 패치를 만들어 제출할 수 있습니다. 일반적으로 다른 주석에 설명 된대로 github에서 포크하거나 자신의 git repo에서 분기하여 리포지토리를 사용할 수 있도록하고 원래 리포지토리의 유지 관리자에게 리포지토리 및 브랜치에 병합 할 정보를 제공합니다.

참고 URL : https://stackoverflow.com/questions/4209208/how-to-convert-a-readonly-git-clone-from-github-to-a-forked-one

반응형