Jak zduplikować repozytorium Git? (bez rozwidlenia)
117
Mam dwa repozytoria i muszę skopiować jeden na drugi, pusty, który ma inne poziomy dostępu niż pierwszy. Kopia i repozytorium macierzyste nie powinny być ze sobą połączone.
Jestem nowy w git i byłoby wspaniale, gdyby ktoś mógł mi w tym pomóc.
Nie jestem pewien, ale myślę, że możesz go po prostu sklonować, a następnie użyć git config remote.origin.url git: //new.url/proj.git, aby ustawić remote.origin na nowego rep.
Rufinus,
tak, link, który właśnie opublikowałem, robi coś takiego.
Aby wykonać dokładny duplikat, musisz wykonać zarówno nagi klon, jak i wypychanie lustrzane:
mkdir foo; cd foo
# move to a scratch dir
git clone --bare https://github.com/exampleuser/old-repository.git
# Make a bare clone of the repository
cd old-repository.git
git push --mirror https://github.com/exampleuser/new-repository.git
# Mirror-push to the new repository
cd ..
rm -rf old-repository.git
# Remove our temporary local repository
UWAGA: powyższe będzie działać dobrze z każdym zdalnym repozytorium git, instrukcje nie są specyficzne dla github
Powyższe tworzy nową zdalną kopię repozytorium. Następnie sklonuj go do działającej maszyny.
Co się stanie, jeśli stare i nowe repozytoria miały taką samą nazwę (nie ten sam adres URL git). Tak jak w, po prostu Jeremy.gitJeremy.git
klonuję
To nie będzie dokładny duplikat. Problemy nie zostaną przeniesione.
Slam
Czy to zachowuje historię?
Thomas
@Thomas Właśnie to zrobiłem i tak, zachowałem całą moją historię w kopii. Zauważ, że po wciśnięciu i cd do nowego repozytorium nadal nic tam nie ma, ponieważ wcisnąłeś do pilota, więc musisz wyciągnąć
PfunnyGuy
7
Aby ta odpowiedź działała z GitHubem, należy najpierw utworzyć nowe repozytorium na GitHub.
Jak w pierwszej kolejności zainstalować klejnot? Wydaje się, że jest to najbardziej bezproblemowe rozwiązanie. Głosowano!
saran3h
Zwykle jest częścią instalacji Rubiego. Na Ubuntu zrób sudo apt install ruby.
szkoda
10
Jeśli kopiujesz do GitHub, możesz skorzystać z importera GitHub, aby zrobić to za Ciebie. Oryginalne repozytorium może pochodzić nawet z innych systemów kontroli wersji.
Działa to doskonale, a nawet zachowuje historię - powinno być wyżej głosowane
John D
1
Zgadzam się. To podejście jest znacznie bardziej intuicyjne, można to zrobić całkowicie w interfejsie GUI Github i nie wiąże się z żadnym z tych mylących bzdur z wiersza poleceń. Kroki: 1) W graficznym interfejsie użytkownika utwórz nowe repozytorium, ale nie zaznaczaj pola wyboru „Zainicjuj to repozytorium za pomocą pliku README”. Po wykonaniu tej czynności Github wyświetli nową stronę i opcję oznaczoną „… lub importuj kod z inne repozytorium. " Otóż to!
Luke F.
5
Jeśli chcesz po prostu utworzyć nowe repozytorium, używając wszystkich lub większości plików z istniejącego (tj. Jako rodzaj szablonu), uważam, że najłatwiejszym podejściem jest utworzenie nowego repozytorium o żądanej nazwie itp., Sklonuj je do na pulpicie, a następnie po prostu dodaj pliki i foldery, które chcesz w nim umieścić.
Nie masz całej historii itp., Ale prawdopodobnie nie chcesz tego w tym przypadku.
Próbowałem twojego podejścia. Otrzymałem ten komunikat o błędzie:! [zdalne odrzucenie] master -> master (odebranie połączenia odrzucone) i kilka innych podobnych wiadomości. Ostatni był: błąd: nie udało się wysłać niektórych referencji. Jak mogę to poprawić?
Odpowiedzi:
Zobacz https://help.github.com/articles/duplicating-a-repository
Krótka wersja:
Aby wykonać dokładny duplikat, musisz wykonać zarówno nagi klon, jak i wypychanie lustrzane:
UWAGA: powyższe będzie działać dobrze z każdym zdalnym repozytorium git, instrukcje nie są specyficzne dla github
Powyższe tworzy nową zdalną kopię repozytorium. Następnie sklonuj go do działającej maszyny.
źródło
Jeremy.git
Jeremy.git
Możesz także użyć git-copy .
Zainstaluj go za pomocą Gem,
Następnie
źródło
sudo apt install ruby
.Jeśli kopiujesz do GitHub, możesz skorzystać z importera GitHub, aby zrobić to za Ciebie. Oryginalne repozytorium może pochodzić nawet z innych systemów kontroli wersji.
źródło
Jeśli chcesz po prostu utworzyć nowe repozytorium, używając wszystkich lub większości plików z istniejącego (tj. Jako rodzaj szablonu), uważam, że najłatwiejszym podejściem jest utworzenie nowego repozytorium o żądanej nazwie itp., Sklonuj je do na pulpicie, a następnie po prostu dodaj pliki i foldery, które chcesz w nim umieścić.
Nie masz całej historii itp., Ale prawdopodobnie nie chcesz tego w tym przypadku.
źródło
Otwórz terminal.
Utwórz czysty klon repozytorium.
cd stare repozytorium.git
źródło