삭제하지 않고 Github 포크 해제


81

GitHub 포크를 삭제하고 다시 생성하지 않고 "포크 해제"하고 싶습니다. 이것이 가능한가?

내 이유는 내 프로젝트가 이제 포크 소스와 완전히 다른 용도로 사용되며 앞으로 커밋 수 또는 풀 요청 버튼을 표시하는 것이 합리적이지 않기 때문입니다. 돌이켜 보면 git clone포크를 만드는 것이 아니라 원본을 만들었을 것입니다.

발행 된 풀 리퀘스트의 이슈와 이력을 유지하기 위해 내 포크를 삭제하지 않고 싶습니다.

나는 커밋의 역사를 유지하게되어 기쁘다. 내가 추구하는 포크 ​​상태를 제거하는 것 뿐이다.


GitHub를위한 것이 아니라 일반 git 저장소에 대한 솔루션이 무엇인지 알고 싶습니다.
— Arj

1
@Arj 나는 포크가 GitHub 특정 개념이라는 인상을 받았기 때문에 문제가 없기 때문에 해결책이 없다고 생각합니다!
— Michal Charemza

GitHub에만 해당된다는 사실을 몰랐습니다. 감사합니다! 그러나 나는 포크도 허용하는 Atlassian Stash를 사용하고 있기 때문에 왜 그것이 제네릭이라고 가정 했어야하는지에 대한 것입니다. 나는 그들의 포럼을 둘러 볼 수 있습니다.
— ARJ

답변:


23

거의 1 년 전에 GitHub의 도움말 페이지 중 하나에서 이것에 대해 읽었던 것을 기억합니다. 그들은 귀하의 상황을 설명하는 GitHub 직원에게 연락하라고 언급했습니다. 직원이 필요한 일을 할 것입니다.


편집하다

GitHub 페이지 목록을 살펴본 후 실제 작업에 대해 약간 벗어난 것을 알 수 있습니다. 내가 기억하는 페이지 는 저장소 전송 이었다 . 특히:

전송 된 저장소에 포크가있는 경우 해당 포크는 전송이 완료된 후 새 저장소와 연결됩니다. 리포지토리를 분기 한 사용자는 풀 리퀘스트를 계속 열기 위해 새로운 Git 리포지토리를 가리 키도록 원격 URL을 업데이트해야합니다.


특정 문제에 대해 직원에게 연락하여 포크를 네트워크에서 분리하도록 요청하는 것은 여전히 ​​가치가 있습니다.


10
github.com/contact 의 직원에게 연락하여 제 상황을 설명했고 이제 포크를 풉니 다. 또는 "자체 포크 네트워크로 추출"이라는 용어를 사용합니다. 감사!
— Michal Charemza 2015 년

66

나, 나. Github는 생각보다 훨씬 강력합니다.

의심 할 여지없이 모든 코드를 복사하는 것 외에는 방법이 없습니다. 그러나 복사 절차는 Github 자체에서 수행 할 수 있습니다 . 따라서 자체 대역폭으로 코드를 미러링하는 데 어려움이 없습니다.

단계별 :

  • 오른쪽 상단의 "+"를 클릭하고 "저장소 가져 오기"를 선택합니다.
  • 이전 저장소 URL (예 : https://github.com/user/repo )을 붙여넣고 새 이름을 입력하십시오.
  • "가져 오기 시작"을 클릭하십시오.

끝난. Github는 copy'n'paste가 완료되면 이메일 알림도 제공합니다.

내 프로젝트에 대해 테스트했습니다. 좋은 기능 아닌가요?


3
이것도 문제를 가져올까요?
— chris

1
@ChrisAnderson 나는 그것을 시도하지 않았지만 나는 생각하지 않습니다. 유효한 자식 URL을 허용하기 때문에 거의 모든 작업을 수행한다고 생각합니다 git clone --bare.
— ttimasdf

2
+1 이것이 허용되는 답변이어야합니다. 따라서 분기 된 저장소의 이름을 바꾸고 원래 이름으로 새 저장소로 가져 오기만하면됩니다.
— qsp

48

이 방법은 다른 모든 것 (커밋 히스토리, 브랜치 및 태그)을 유지하면서 새로운 "포크되지 않은"저장소를 생성합니다.

간단한 4 단계로 프로젝트를 "포크 해제"하는 방법 :

  1. git clone --bare https://github.com/{username}/{repository}
  2. https://github.com/{username}/{repository}/ settings 에서 원본 저장소를 삭제합니다 .
  3. 이름으로 새 저장소 만들기 {repository}에 https://github.com/new을 .
  4. cd {repository}.git 과 git push --mirror https://github.com/{username}/{repository}

그리고 끝났습니다!


또한 "2.5. 이전 이름으로 새 저장소 만들기"라는 점이 있어야합니다. -그렇지 않으면 푸시가 알려줍니다remote: Repository not found.
— BartBiczBoży 2017 년

4
운 좋게도 OP는 "이슈 + 풀 리퀘스트 내역을 유지하기 위해 내 포크를 삭제하고 싶지 않습니다."라고 언급했습니다.
— Arcesilas 2017

풀 요청을 유지하지 않습니다. 포크 해제 중에 풀 요청을 유지하는 방법이 있습니까?
— user1858796

또한 어떤 비밀 다시해야 github.com {사용자 이름} / {저장소} / 설정 / 비밀
— rectalogic

21

공식 github 문서에서 다음을 발견했습니다.

포크를 분리하고 GitHub의 독립형 저장소로 전환하려면 GitHub 지원에 문의하세요 . 포크에 자체 포크가있는 경우 포크가 저장소와 함께 새 네트워크로 이동해야하는지 아니면 현재 네트워크에 남아 있어야하는지 지원팀에 알려주십시오. 자세한 내용은 " 포크 정보"를 참조하십시오 .

에서 https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/#commit-was-made-in-a-fork

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.