Programing

GitHub 리포지토리의 포크 종속성 삭제

lottogame 2020. 5. 19. 08:07
반응형

GitHub 리포지토리의 포크 종속성 삭제


GitHub가 내 리포지토리가 원래 다른 프로젝트의 포크라는 것을 잊거나 분리시키는 방법은 무엇입니까?

GitHub에서 프로젝트를 분기했습니다. 이제 "어디서나 무엇이든 갈래"를 볼 수 있습니다. 상위 저장소 "whatever / whatever"는 더 이상 유지 보수되지 않습니다. 독립 저장소를 작성하기 위해 원래 저장소의 코드 기반을 계속 사용할 수 있습니다.

원래 저장소에서 프로젝트를 분리하는 방법이 있습니까?


github 지원에 연락 하여 리포지토리를 "정상 모드"로 전환하도록 요청할 수 있습니다 .

이 페이지 , 단락 "포크에 만들어진 커밋", 하나의 스위치 지원을 통해 이동해야한다는 것을 설명한다. 따라서 (스스로 그렇게 할 수있는 방법은 없습니다 가능성이 당신이 파괴되기 전에 ... 설명 당신의 repo를 다시하지 않는 한 티켓을하거나 같은 위키 프로젝트에 장착되어있는 경우 그렇게주의 경우 것입니다 삭제하십시오!).


로컬 리포지토리에 중요한 분기 및 태그가 모두 있는지 확인하고 github 리포지토리를 삭제하고 일반적인 방법 (포킹 없음)을 통해 리포지토리를 다시 만든 다음로 로컬 리포지토리를 다시 푸시하십시오 git push --all. 게시하지 않으려는 로컬 분기가있는 경우 작업을 위해 임시 클린 로컬 클론을 생성하는 것이 좋습니다.

그러나 이것은 위키와 이슈도 제거 할 것입니다. 위키는 실제로 자체 저장소이므로이를 복제 한 후 다시 작성하고 푸시하여 유사하게 처리 할 수 ​​있습니다. 리포지토리 주소는 위키의 Git Access 페이지 ( git@github.com:user/repo.wiki.git)에 있습니다.

이것은 문제를 남긴다. API를 통해 내보낼 수 있지만 내가 아는 한 사람과 만 문제와 의견을 만들 수 있으므로 완벽하게 가져 오는 것은 불가능합니다.

따라서 문제를 보존해야하는 경우 Thomas Moulard가 제안한대로 github 지원을 수행해야합니다.


github UI에서 분기 저장소를 분기 저장소없이 새 저장소에 복제 한 다음 원래 분기를 제거 할 수 있습니다.

  • github에 로그인
  • 오른쪽 상단에서 + 부호를 선택 하고 가져 오기 저장소를 선택하십시오 .
  • 분기 저장소를 가져 오십시오. 새 리포지토리에는 포크 종속성이 없습니다.
  • 저장소 설정에서 분기 된 원래 저장소를 삭제하십시오.

비슷한 문제가 발생 하여이 github 도움말 페이지사용하여 문제 를 해결했습니다. 다른 사용자가 친절하게 개발 한 테마를 사용하는 블로그의 위키와 이슈 트래커에 대해서는 신경 쓰지 않았습니다.

전체 기록을 잃지 않고 여러 번 커밋 한 후 분기 된 저장소를 분리하고 자신의 저장소로 사용하려면 다음을 수행하십시오.

git clone --bare git@github.com:user/forked_repo.git

new-repositorygithub 웹 사이트에서 빈 저장소 새로 만듭니다 . 그리고 미러 버전을 푸시하십시오.

cd user.github.com.git/

git push --mirror git@github.com:user/new-repository.git

하나는 github에서 이름을 바꿀 수 forked_repository있으며 다른 이름은 백업으로 유지하고 필요한 경우 업데이트를 확인할 수 있습니다. 또는 단순히 삭제하십시오.

이름 new-repository을 원래 이름으로 바꾸면 작업이 수행됩니다. 부작용으로 커밋이 내역에 나타납니다.


aurelienClayton 의 정보를 사용하여 다음과 같이 할 수있었습니다.

$ git clone --bare https://github.com/my/forked_repo.git
<delete forked_repo on GitHub>
<recreate repo on GitHub using same name>
$ cd forked_repo.git
$ git push --mirror

다음은 설명서입니다git clone --bare .

베어 Git 리포지토리를 만듭니다. 즉, <directory>에 관리 파일 을 만들어 배치하는 대신 자체 파일을 <directory>/.git로 만드 <directory>십시오 $GIT_DIR. 작업 트리를 확인할 곳이 없기 때문에 이것은 분명히 -n을 의미합니다. 또한 리모콘의 분기 헤드는로 매핑되지 않고 해당 로컬 분기 헤드로 직접 복사됩니다 refs/remotes/origin/. 이 옵션을 사용하면 원격 추적 분기 나 관련 구성 변수가 만들어지지 않습니다.

다음은 설명서입니다git push --mirror .

대신 밀어 각 REF 네이밍, 심판 미만임을 지정 refs/(을 포함하지만 이에 한정되지 않고 refs/heads/, refs/remotes/, 및 refs/tags/)는 원격 저장소에 미러링 될 수있다. 새로 생성 된 로컬 참조는 원격 끝으로 푸시되고 로컬로 업데이트 된 참조는 원격 끝에서 강제로 업데이트되며 삭제 된 참조는 원격 끝에서 제거됩니다. 구성 옵션 remote.<remote>.mirror이 설정된 경우 이것이 기본값 입니다.

참고 : 다른 git기반 답변 git과 마찬가지로 위키 및 문제와 같이 리포지토리에 속하지 않은 문제는 복사하지 않습니다 . 타 피오 당 :

  • 위키는 별도의 git repo이며 Tapio마다 비슷한 방식으로 처리 할 수 ​​있습니다. 주소는 다음과 같습니다 git@github.com:user/repo.wiki.git.
  • 문제는 GitHub API를 통해 내보낼 수 있지만 사용자 만 만들 수 있기 때문에 다시 만드는 데 문제가 있으므로 가져 오기에서 정보가 손실됩니다.

이것은 github.com이 아닌 GitHub Enterprise에만 적용됩니다.

관리자 권한이있는 계정으로 로그인했습니다 :

  1. 분리해야하는 저장소로 이동하십시오. https://<ghe url>/<org>/<repo>
  2. 오른쪽 상단 모서리에있는“사이트 관리자”로켓을 클릭하십시오
  3. 상단 메뉴 표시 줄에서 "협업"을 클릭하십시오
  4. 왼쪽 창에서 "네트워크"를 클릭하십시오
  5. 네트워크 구조 창에서 "루트 만들기"를 클릭하십시오
  6. 동의하기

이것은 GitHub Enterprise 2.9에서 테스트되었습니다.

참고 URL : https://stackoverflow.com/questions/16052477/delete-fork-dependency-of-a-github-repository

반응형