Załóżmy, że mam repozytorium na git.fedorahosted.org i chcę sklonować to na moim koncie w github, aby mieć własny plac zabaw oprócz bardziej „oficjalnego” repo na fedorahosted. Jakie byłyby kroki, aby na początku to skopiować? W githubie znajduje się ładny przycisk „rozwidlenia”, ale nie mogę go używać z oczywistych powodów.
A jak śledzę zmiany w repozytorium fedorahosted w githubie?
origin
wskazuje na kanoniczną zdalną lokalizację. W tym przypadku lokalizacja github byłaby prawdopodobnie kanoniczna.git remote add
. Następnie możesz przejść do jednego z nich, wyraźnie wpisując pilotagit push
. Np.git push foobar master
Do popchnięcia bieżącej gałęzimaster
na zdalniefoobar
.Na to pytanie została usunięta odpowiedź, która zawierała przydatny link: https://help.github.com/articles/duplicating-a-repository
Istotą jest
Przykład PO:
Na twoim komputerze lokalnym
źródło
error: failed to push some refs to 'https://github.com/username/testrep.git'
Aby zmienić istniejące repozytorium w inne, musisz:
Najpierw sklonuj oryginalne repozytorium.
Wciśnij sklonowane źródła do nowego repozytorium:
Możesz zmienić się
master:master
wsource:destination
oddział.Jeśli chcesz przekazać określone zatwierdzenie (gałąź), wykonaj następujące czynności:
Na oryginalnym repozytorium utwórz i przejmij nowy oddział:
Wybierz i zresetuj do punktu, od którego chcesz zacząć:
Alternatywnie wybierz zatwierdzenie przez,
git cherry-pick
aby dołączyć do istniejącej HEAD.Następnie przejdź do nowego repozytorium:
Jeśli korzystasz
-f
z bazy, użyj opcji forsowania (niezalecane). Uruchom,git reflog
aby zobaczyć historię zmian.źródło
git push ... old_branch_name:new_branch_name
pozwala naciskać gałąź funkcji ze starego repozytorium jako główny oddział w nowym repozytorium. Przydatne!Czy naprawdę chcesz po prostu wypchnąć lokalne repozytorium (wraz z jego lokalnymi oddziałami itp.) Do nowego pilota, czy naprawdę chcesz skopiować stary pilot (ze wszystkimi jego gałęziami, tagami itp.) Na nowym pilocie? Jeśli ten ostatni jest świetnym blogiem na temat prawidłowego kopiowania repozytorium git .
Gorąco zachęcam do przeczytania bloga w celu zapoznania się z bardzo ważnymi szczegółami, ale krótka wersja jest następująca:
W nowym katalogu uruchom następujące polecenia:
źródło
Spróbuj tego Jak przenieść pełne repozytorium Git
Utwórz lokalne repozytorium w katalogu temp-dir, używając:
git clone temp-reż
Przejdź do katalogu temp-dir.
Aby zobaczyć listę różnych gałęzi w ORI:
Przejdź do wszystkich gałęzi, które chcesz skopiować z ORI do NOWEGO, używając:
Teraz pobierz wszystkie tagi z ORI, używając:
Przed wykonaniem następnego kroku sprawdź lokalne tagi i gałęzie, używając następujących poleceń:
Teraz wyczyść łącze do repozytorium ORI za pomocą następującego polecenia:
Teraz połącz swoje lokalne repozytorium z nowo utworzonym NOWYM repozytorium za pomocą następującego polecenia:
Teraz wypchnij wszystkie swoje gałęzie i tagi za pomocą tych poleceń:
Masz teraz pełną kopię z repozytorium ORI.
źródło
Znalazłem rozwiązanie za pomocą set-url, które jest zwięzłe i dość łatwe do zrozumienia :
cd
do istniejącego repozytorium na komputerze lokalnym (jeśli jeszcze go nie sklonowałeś, zrób to najpierw)git remote set-url origin https://github.com/user/example.git
git push -u origin master
źródło
Jeśli masz istniejące repozytorium Git:
źródło
Po prostu wskaż nowe repozytorium, zmieniając adres URL repozytorium GIT za pomocą tego polecenia:
Przykład:
git remote set-url origin [email protected]:Batman/batmanRepoName.git
Teraz pchanie i ciągnięcie jest powiązane z nowym REPO.
Następnie pchnij normalnie tak:
źródło
Miałem ten sam problem.
W moim przypadku, ponieważ mam oryginalne repozytorium na moim komputerze lokalnym, utworzyłem kopię w nowym folderze bez ukrytego pliku (.git, .gitignore).
Wreszcie dodałem plik .gitignore do nowo utworzonego folderu.
Następnie utworzyłem i dodałem nowe repozytorium ze ścieżki lokalnej (w moim przypadku za pomocą GitHub Desktop).
źródło
Oto ręczny sposób
git remote set-url origin [new repo URL]
:git clone <old remote>
otwarty
<repository>/.git/config
i zmień pilota (opcja url)
Przekaż repozytorium do GitHub:
git push
Możesz także używać obu / wielu pilotów .
źródło