Jak sprawić, aby GitHub zapomniał lub odłączył się od tego, że moje repo było pierwotnie widelcem innego projektu?
Rozwidliłem projekt w GitHub. Widzę teraz „rozwidlony od cokolwiek / cokolwiek”. Repozytorium nadrzędne „cokolwiek / cokolwiek” nie jest już utrzymywane. Pozwolono mi kontynuować korzystanie z bazy kodu oryginalnego repozytorium w celu utworzenia niezależnego repozytorium.
Czy istnieje sposób na odłączenie mojego projektu od oryginalnego repozytorium?
Możesz zduplikować rozwidlone repozytorium do nowego repozytorium (bez zależności widelca) z interfejsu użytkownika github, a następnie usunąć oryginalne rozwidlone:
źródło
Upewnij się, że masz wszystkie ważne gałęzie i tagi na lokalnym repozytorium, usuń repozytorium github, ponownie utwórz repozytorium w zwykły sposób (bez rozwidlania) i wypchnij lokalne repozytorium z powrotem
git push --all
. Pamiętaj, że jeśli masz lokalne oddziały, których nie chcesz publikować, warto utworzyć tymczasowy czysty lokalny klon dla operacji.Jednak spowoduje to również pozbycie się wiki i problemów. Ponieważ wiki jest w rzeczywistości własnym repozytorium, można nią podobnie zarządzać poprzez klonowanie, a następnie odtwarzanie i pchanie. Adres repo znajduje się na stronie Git Access wiki (
[email protected]:user/repo.wiki.git
).To pozostawia problemy. Można je eksportować za pośrednictwem interfejsu API , ale o ile wiem, możesz tworzyć problemy i komentarze tylko ze swoją osobą, więc ich idealne importowanie jest niemożliwe.
Jeśli więc chcesz rozwiązać problemy, powinieneś skorzystać z pomocy github, jak sugeruje Thomas Moulard.
źródło
Mam podobny problem i skorzystałem z tej strony pomocy github, aby go rozwiązać. Nie przeszkadzało mi to w przypadku wiki i narzędzia do śledzenia problemów, ponieważ było to w przypadku mojego bloga przy użyciu motywu opracowanego przez innego użytkownika.
Aby odłączyć rozwidlone repozytorium i używać go jako własnego po kilku zatwierdzeniach bez utraty całej historii:
git clone --bare [email protected]:user/forked_repo.git
Utwórz nową pustą reposity
new-repository
na stronie github. Wciśnij wersję lustrzaną:cd user.github.com.git/
git push --mirror [email protected]:user/new-repository.git
Można zmienić nazwę na github,
forked_repository
z inną nazwą, aby zachować go jako kopię zapasową i sprawdzić aktualizacje w razie potrzeby. Lub po prostu go usuń.Zmiana nazwy na
new-repository
oryginalną nazwę wykonuje zadanie. Jako efekt uboczny twoje zobowiązania pojawiają się teraz w twojej historii.źródło
Dotyczy to tylko GitHub Enterprise, a nie witryny github.com
Zalogowano na konto z uprawnieniami administratora:
https://<ghe url>/<org>/<repo>
Zostało to przetestowane na GitHub Enterprise 2.9
źródło
Korzystając z informacji z aurelien i Clayton , mogłem to zrobić w następujący sposób:
Oto dokumentacja dla
git clone --bare
:Oto dokumentacja dla
git push --mirror
:Uwaga: podobnie jak inne
git
oparte na odpowiedziach, nie spowoduje to skopiowania problemów, które nie są częściągit
repozytorium, takich jak wiki i problemy. Per Tapio:[email protected]:user/repo.wiki.git
.źródło