GitHub : 포크를 "자체 프로젝트"로 만들기


118

많이 확장 한 멋진 GitHub 프로젝트를 찾았습니다. 제 변화가 효과가 있다고 믿습니다. 그러나 원저자는 이러한 변경 사항을 검토하고 포함 할 시간이없는 것 같습니다. 사실 내가 필요로하고 구현 한 기능이 원저자의 비전에 있지 않고 단순히 다른 목표를 목표로 할 수도 있습니다. 나는 그에게서 응답을받지 못했기 때문에 모르겠다.

그것은 내 기여가 내 커밋 맵에 포함되지 않는다는 것을 보았습니다. 이것은 원래 저장소가 내 기여를 수락하지 않는 한 해당됩니다. 더욱이 내 작품은 작품으로 만 인정 받고 나와 같은 비전을 가진 사람을 끌어 들이지 않는다. 많은 사람들이 이러한 기능을 요구하기 때문에 이것이 저에게 더 큰 문제입니다.

나는 여전히 원래 프로젝트에 대한 나의 기여를 제공하고 있지만 그들이 받아 들일 가능성은 거의 없다고 생각합니다. 이제 포크를 "실제 프로젝트"로 만들고 싶습니다. 어떤 시점에서 원래 프로젝트와 동기화 할 계획이지만 이름을 바꾸고 사람들이 내 프로젝트에 기여하도록 동기를 부여하고 싶습니다. 또한 GitHub가이 프로젝트가 적극적으로 유지되고 있음을 보여 주면 좋겠습니다 (커밋 맵에 대해 말하면). 그리고 마지막으로 적절한 릴리스를 만들고 싶습니다.

어떻게이 작업을 수행하고 내 포크를 본격적인 프로젝트로 만들 수 있습니까?


혼란 스럽습니다. 2014 년 이후로 상황이 변경되었을 수 있지만, 내 TightBlog 프로젝트는 왼쪽 상단 모서리에 Apache Roller의 포크로 나열되어 있습니다 : github.com/gmazza/tightblog ,하지만 내 모든 문제에 대해 전적인 크레딧을 받고 있습니다. , PR 등, Apache Roller 메인 프로젝트에 적용되는 작업은 없지만 내 포크에만 적용됩니다 : ( github.com/gmazza?tab=overview&period=monthly ). 더 이상 포크를 독립형 프로젝트로 만들면 어떤 이점이 있는지 잘 모르겠습니다.
Glen Mazza

답변:


75

9
또한 이렇게하면 스타 게이저, 관찰자 ​​및 포크 네트워크가 유지됩니다. 처음부터 새 저장소를 만드는 것과는 다릅니다.
Johnco

1
GitHub Support가 나에게 자식 포크를 다시 양육하거나 내 저장소에 계속 연결할 수있는 선택권을 주었다는 점은 주목할 가치가 있습니다.
gmarmstrong

41

이렇게하려면 저장소복제해야합니다 . 짧은 버전은 다음과 같습니다.

  1. GitHub에서 새 저장소를 만듭니다.
  2. 부모에서 분리하려는 분기 된 저장소를 복제합니다.
  3. 이 복제본의 모든 분기를 새 저장소로 푸시합니다.

리포지토리의 이름이 그대로 유지되도록하려면 리포지토리를 복제하고 GitHub에서 삭제하고 같은 이름으로 새 프로젝트를 만들고 모든 것을 푸시 할 수 있습니다.
Rory O'Kane

12
GitHub 풀 요청은 프로젝트의 GitHub 포크에서만 가능합니다. 따라서 리포지토리를 복제하면 새 리포지토리에서 풀 요청을 할 수 없습니다. 그리고 이전 리포지토리를 삭제하고 교체하면 GitHub에서 코드가 삭제 된 것으로 간주하고 새 풀 요청을 만들 수 없기 때문에 기존 풀 요청이 모두 닫힐 수 있습니다.
Rory O'Kane

9
이로 인해 사람들이 불필요한 행동을하도록 오해 할 수 있으므로 반대표를 던집니다. 대신 Oleh의 대답을 받아 들여야합니다. 갈 길은 GitHub 지원에 문의하는 것입니다. 내 포크를 독립형 저장소로 변환하는 데 1 시간도 채 걸리지 않았습니다.
게오르기 Ivankin

5

이것은 매우 쉽습니다.

  1. 어딘가에 리포지토리를 복제 하십시오. git clone git@github.com:USERNAME/REPOSITORY.git(복제했는지 확인하십시오)
  2. GitHub에서 저장소 삭제 (설정> 옵션>이 저장소 삭제)
  3. GitHub에서 새 빈 저장소 만들기
  4. git remote set-url origin git@github.com:USERNAME/NEW_REPOSITORY.git(저장소에 동일한 이름을 사용했다면 NEW_REPOSITORY== REPOSITORY👍🏻)
  5. git push
  6. 🙌🏻

(나는 ssh를 사용하지만 https를 사용하면 github URL이 다음과 같이 보일 것입니다 https://github.com/USERNAME/REPOSITORY.git)


1

먼저 라이선스가 그렇게 할 수 있는지 확인해야합니다. 일반적으로 오픈 소스는 체인이 아닌 소프트웨어 진화에 관한 것이기 때문에 그렇게하도록 강제합니다. 그렇다면 새 저장소를 만드십시오. 원작자를 인정하고 프로젝트를 시작하는 것을 잊지 마십시오.


3
MIT 라이센스를 받았으며 예, 평소처럼 크레딧을 줄 계획입니다. 사실 원래 작성자가 내 코드를 수락했거나 승인하지 않는 이유를 알려
Christian

1
라이선스가 원본의 GitHub 포크가 아닌 리포지토리를 생성하는 것을 허용하지 않는 경우, 공개 프로젝트는 오픈 소스 라이선스로 출시되어야하므로 프로젝트는 처음에 공개 GitHub 프로젝트가 아니어야합니다. . 코드 복사를 허용하지 않는 오픈 소스 라이선스는 생각할 수 없습니다. 이것이 오픈 소스의 전체 요점입니다. (물론
어트 리뷰 션

저자는 확실히 해야 자신의 프로젝트 무료 소프트웨어를 만들지 만, 그렇지 않은 경우 (어떤 라이센스가없는 경우), 다음 프로젝트가 아닌 무료 : stackoverflow.com/a/16934573/6791398
gmarmstrong
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.