읽기 전용 git 클론을 github에서 forked로 변환하는 방법
가끔이 문제가 발생합니다.
몇 가지 문제가 발생했기 때문에 레일의 소스 코드를 읽기 위해 다음을 수행했다고 가정 해 보겠습니다.
git clone git://github.com/rails/rails.git
연구하는 동안 나는 무언가를 테스트했고 이제 Rails 핵심 팀이 살펴 보길 원하는 수정 사항이 있습니다. 변경 사항을 분기 된 레일 버전으로 푸시하려면 어떻게합니까?
복제 할 때 분기 된 버전이 아니라 읽기 전용 버전을 복제 한 것을 기억하십시오.
나는 포크에 반대하는 것이 아닙니다. 가끔은 그냥 찾아보고 뭔가를 추가하고 싶을 때가 있습니다.
저장소를 복제하면 복제 한 저장소 origin
를 참조 하는 원격 호출 이 자동으로 설정됩니다 . 이것은 이제 업스트림 Rails 프로젝트를 가리키고 있지만 필요한 것은 푸시 할 수있는 자체 포크를 만든 다음 푸시 할 수 있도록 거기를 가리키는 원격을 설정하는 것입니다.
첫 번째 단계는 업스트림 GitHub 프로젝트 페이지에서 "포크"버튼을 클릭하는 것입니다 ( 포킹에 대한 GitHub 지침의 그림 ).
그런 다음 해당 저장소의 URL을 찾아 복사하십시오. 읽기 및 쓰기 액세스 권한이있는 SSH URL을 사용해야합니다. git@github.com:nadal/rails.git
사용자 이름이라고 가정하면 다음과 같아야합니다 nadal
.
이제 Git이 원격 저장소를 추적 할 수 있도록 원격 저장소를 만들 수 있으며 액세스 권한에 따라 가져 오거나 푸시 할 수 있습니다. origin
푸시 할 대상 (설정 한 사람 수)으로 교체 하거나 origin
업스트림을 가리 키도록 두고 대신 새 리모컨을 만들 수 있습니다. 첫 번째 설정을 수행하는 방법을 보여 드리겠습니다. 두 번째는 쉽게 알아낼 수 있어야합니다.
origin
GitHub에서 포크를 가리 키도록 변경하려면 업스트림 브랜치를 어딘가에 유지하고 싶을 것이므로 이름을 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
원격을 다음과 같이 추가 할 수 있습니다. 잘).
복제 모드에서 분기 모드로 전환하는 매우 쉬운 방법 hub
은 http://hub.github.com/ 의 래퍼를 사용하는 것 입니다.
이것이 설치되면 실행하십시오
hub fork
읽기 전용 복제본 내에서.
그것은 중요하지 않습니다. 원하는 경우 포크되지 않은 저장소를 지정하여 다른 원격을 추가 할 수 있습니다. 변경 사항을 적용하십시오.
또는 포크를 원하지 않는 경우 유지 관리 팀에 따라 패치를 만들어 제출할 수 있습니다. 일반적으로 다른 주석에 설명 된대로 github에서 포크하거나 자신의 git repo에서 분기하여 리포지토리를 사용할 수 있도록하고 원래 리포지토리의 유지 관리자에게 리포지토리 및 브랜치에 병합 할 정보를 제공합니다.
'program tip' 카테고리의 다른 글
XX 숨겨진 모듈이 웹팩의 의미 (0) | 2020.10.08 |
---|---|
우선 순위 : ETag 또는 Last-Modified HTTP 헤더? (0) | 2020.10.08 |
C ++에서 함수 내에서 구조와 클래스를 정의 할 수있는 이유는 무엇입니까? (0) | 2020.10.08 |
메모장 ++에 TextFX 메뉴가 없습니다. (0) | 2020.10.08 |
빈 구조체를 확인하는 방법은 무엇입니까? (0) | 2020.10.07 |