Mam repozytorium na Github, które zawiera aplikację internetową wdrożoną w dwóch różnych domenach. Aplikacja ma tu i tam niewielkie rozwidlenia logiczne, które zachowują się różnie w zależności od domeny, w której została wdrożona.
Doszło do punktu, w którym chcę podzielić to na dwa oddzielne repozytoria, po jednym dla każdej domeny.
Github nie pozwala mi podzielić tego na tę samą organizację. Wyszukiwanie „git duplicate repo” sugeruje, że powinienem go skopiować i przesłać kopię lustrzaną, ale wydaje się, że chodzi o utrzymanie synchronizacji obu repozytoriów, czego nie chcę robić.
Jak najlepiej to zrobić? Chciałbym, jeśli to możliwe, zachować starą historię zmian w nowej kopii.
git clone --bare
igit push --mirror
są dokładnie tym, czego chcesz. Nie powoduje to synchronizacji obu repozytoriów. Ale zachowuje wszystko , w tym wszystkie gałęzie, tagi itp. Po prostu zrób to w katalogu tymczasowym, aby wykonać kopię. Następnie sklonuj nową kopię bezpośrednio ze swojego pilota w katalogu projektu.Odpowiedzi:
Po prostu utwórz nowe repozytorium i wypchnij do niego z kopii roboczej:
Teraz masz nowe repozytorium
myrepo-new
, które jest identyczne zmyrepo-original
.źródło
push
je wyraźnie, a „nowe” repozytorium nie będzie wyświetlać żadnego związku ze starym.git push --all origin
Jeśli nie potrzebujesz relacji fork (np. Chcesz z jakiegoś powodu jakiegoś oddzielnego repozytorium alternatywnego), skopiowanie repozytorium jako konturów znalezionych przez Google i odpowiedź Larska jest w porządku.
Jeśli nie chcesz, aby to widelec, kontakt Github wsparcie ([email protected] lub https://github.com/support ) i będą tworzyć rozwidlenia w tej samej organizacji dla Ciebie. (Nie są też wybredni, wystarczy podać alternatywną nazwę repozytorium, ponieważ nazwy repozytoriów na koncie muszą być unikalne).
Aktualizacja : Użytkownik Steve Rice zgłosił w komentarzach poniżej, że obsługa GitHub stwierdziła, że obsługa obecnie / nie skonfiguruje już drugiego rozwidlenia na koncie.
GitHub niedawno opublikował artykuł o możliwych alternatywach dla łączenia repozytorium na to samo konto. Możesz przeczytać ten artykuł tutaj .
źródło
Użyj opcji Importuj repozytorium Github w menu + u góry strony lub po prostu otwórz
https://github.com/new/import
Spowoduje to utworzenie nowego repozytorium z dokładną zawartością skopiowanego repozytorium. Wadą (tak samo jak w przypadku odpowiedzi na polecenia git od Iarsksa ) jest to, że nie liczy się jako rozwidlenie dla Githuba.
źródło
Innym sposobem byłoby dodanie oryginalnego repozytorium do skopiowania jako zdalnego dla naszego bieżącego repozytorium.
W lokalnym terminalu uruchom:
źródło
Alternatywne rozwiązanie:
Utwórz nową organizację i tam ją rozwidl. Jeśli repozytorium jest prywatne, pozostanie prywatne również w nowej organizacji. Następnie możesz dać dostęp zewnętrznym deweloperom lub komukolwiek, komu chcesz, do rozwidlonego repozytorium, a oni mogą podnieść PR z powrotem do pierwotnego repozytorium.
źródło
Nie mógłbyś po prostu zduplikować folderu lokalnego, usunąć rzeczy git:
Następnie utworzyć nowe repozytorium w tym folderze? Wydaje się czystsze i łatwiejsze.
źródło
./.git/
nie pomogłoby w deklarowanym przez PO zamiar „zachowania starej historii zmian w nowej kopii, jeśli to możliwe”.