Migracja z Bitbucket do GitHub
Jeśli chodzi o Bitbucket i GitHub, każdy z nich ma swoje zalety i wady. Używałem ich obu i lubię je z różnych powodów.
Ale wolę GitHub z kilku innych powodów niż Bitbucket (z których najmniejszym nie jest to, że moja organizacja była tam hostowana). A ja lubię mieć wszystko, mniej więcej, w ramach tej samej usługi.
W zeszłym tygodniu spędziłem trochę czasu na migracji z Bitbucket do GitHub. Obecnie prowadzę dwa konta osobiste:
- jeden dla siebie,
- jeden dla Pressware.
Zdecydowałem się na zmianę konta organizacji na konto osobiste, aby zaoszczędzić pieniądze, a także dlatego, że jestem mniej więcej firmą, która od czasu do czasu ma współpracowników.
Różne przewodniki online pozostawiają wiele do życzenia, jeśli chodzi o migrację z Bitbucket do Github, więc pomyślałem, że podzielę się swoim doświadczeniem.
Migracja z Bitbucket do GitHub
Po pierwsze, pisząc to, zakładam, że chcesz mieć dwa konta osobiste, z których każde ma własne konto GitHub, a tym samym swój adres e-mail.
Jeśli tak jest, to powinno zapewnić ci wszystko, czego potrzebujesz. Zakładam również, że masz skonfigurowane dwa konta – nic moe (czyli żadnych kluczy SSH ani nic podobnego).
W moich przykładach używam Pressware jako nazwy użytkownika. Będziesz musiał zastąpić to, co chcesz.
Powiedziawszy to, oto, co musisz zrobić.
1 Wygeneruj klucz SSH
Najpierw musisz wygenerować klucz SSH. W zależności od rodzaju pracy, którą wykonujesz, możesz zachować ostrożność. Oznacza to, że jeśli masz istniejący plik id_rsa, nie nadpisuj go. Zamiast tego stworzymy drugi.
Aby to zrobić, otwórz terminal i wprowadź następujące polecenie, zastępując podany adres e-mail adresem e-mail drugiego konta, które utworzyłeś (w moim przypadku jest to moje konto pressware, w przeciwieństwie do mojego konta tommcfarlin ).
$ ssh-keygen -t rsa -b 4096 -C "email@pressware.co"
Kiedy prosi o nazwę pliku, którego chcesz użyć, dodaj do niego nazwę użytkownika (lub nazwij go jak chcesz – po prostu jestem fanem robienia tego w ten sposób).
W moim przypadku zapisuję plik w id_rsa_pressware
. Następnie określ dowolne hasło.
2 Dodaj klucz do lokalnego agenta
Następnie musisz dodać klucz do swojego agenta SSH. Wszystko to jest niezbędne, abyśmy mogli komunikować się z odpowiednim kontem GitHub, gdy nadejdzie czas rozpoczęcia migracji z Bitbucket do GitHub.
Aby to zrobić, wprowadź następujące polecenie w swoim terminalu:
Spowoduje to uruchomienie programu ssh-agent jako procesu w tle. Następnie wprowadź następne polecenie:
$ ssh-add -K ~/.ssh/id_rsa_pressware
Spowoduje to dodanie klucza prywatnego SSH i zapisanie hasła w pęku kluczy systemu operacyjnego.
3 Dodaj klucz SSH do GitHub
Następnie zaloguj się na konto GitHub, do którego będziesz migrować repozytoria. Na koncie kliknij ikonę swojego profilu, a następnie kliknij element menu Ustawienia.
Stamtąd wybierz opcję dla kluczy SSH i GPG. Następnie skopiuj zawartość nowo utworzonego klucza do schowka. Możesz to zrobić w terminalu za pomocą następującego polecenia :
Następnie kliknij przycisk Nowy klucz SSH i na następnej stronie nadaj kluczowi dowolną nazwę i wklej zawartość, która została właśnie skopiowana na klawiaturę.
4 Przenieś swoje repozytoria
Aby wszystko było zwięzłe, pokażę, jak skopiować jedno repozytorium. Bitbucket, ale musisz to zrobić dla tylu repozytoriów, ile potrzebujesz do migracji.
Najpierw na GitHub utwórz puste repozytorium o tej samej nazwie, co to, które zamierzasz migrować. W poniższym przykładzie użyję po prostu acme-repository.
Następnie wprowadź w terminalu następujące polecenie:
$ git clone --mirror https://bitbucket.org/tommcfarlin/acme-repository.git
Spowoduje to sklonowanie kopii lustrzanej repozytorium acme na pulpit. Następnie przejdź do wnętrza katalogu (wpisując cd acme-repository.git
).
Następnie wprowadź to polecenie w swoim terminalu:
$ git remote set-url --push origin git@github.com:pressware/acme-repository.git
Spowoduje to ustawienie nowego zdalnego adresu URL nadrzędnego, do którego powinna zostać wypchnięta cała zawartość repozytorium.
Po wykonaniu tej czynności jest to kwestia wypchnięcia zawartości repozytorium:
W zależności od rozmiaru repozytorium może to zająć trochę czasu, ale praca jest skończona.
I to wszystko
Łatwo byłoby powiedzieć „to wszystko!" ale jest to trochę czasochłonna praca, jeśli masz wiele repozytoriów, nie znasz SSH lub jesteś nowy w tym wszystkim.
Ale kiedy wszystko jest już skonfigurowane i zorganizowane, znacznie przyjemniej jest mieć wszystko w tej samej usłudze, jeśli tylko jest to oddzielone kontami.
Wreszcie, w momencie pisania tego tekstu, w ten sposób migrowałem z Bitbucket do GitHub. Podobnie jak inne posty i artykuły online, może to być nieaktualne w ciągu kilku miesięcy.