삭제하지 않고 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}.gitgit 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.