Ćwiczenie — przekazywanie projektu do usługi GitHub
Repozytoria można importować do usługi GitHub przy użyciu narzędzia GitHub Importer, wiersza polecenia lub narzędzi do migracji zewnętrznej.
About GitHub Importer (Informacje o narzędziu GitHub Importer)
Jeśli masz kod źródłowy w usłudze Subversion, Mercurial, Kontrola wersji serwera Team Foundation (TFVC) lub innym repozytorium Git, możesz przenieść go do usługi GitHub przy użyciu narzędzia GitHub Importer. Importer GitHub to narzędzie, które szybko importuje repozytoria kodu źródłowego, w tym zatwierdzenia i historię poprawek, do usługi GitHub.
Podczas importowania, w zależności od importowanych systemów kontroli wersji, można wykonać niektóre z następujących zadań. Uwierzytelnianie za pomocą repozytorium zdalnego, aktualizowanie autorstwa autora zatwierdzeń, importowanie repozytoriów z dużymi plikami lub usuwanie dużych plików, jeśli nie chcesz używać usługi Git Large File Storage.
| Akcja importu | Subversion | Mercurial | Kontrola wersji serwera Team Foundation | Git |
|---|---|---|---|---|
| Uwierzytelnianie za pomocą repozytorium zdalnego | X | X | X | X |
| Aktualizowanie autorstwa autora zatwierdzenia | X | X | X | |
| Przenoszenie dużych plików do usługi Git Large File Storage | X | X | X | |
| Usuwanie dużych plików z repozytorium | X | X | X |
Importowanie repozytorium za pomocą narzędzia GitHub Importer
Jeśli masz projekt hostowany w innym systemie kontroli wersji, możesz go automatycznie zaimportować do usługi GitHub przy użyciu narzędzia GitHub Importer. Importer GitHub nie jest odpowiedni dla wszystkich importów. Jeśli na przykład istniejący kod jest hostowany w sieci prywatnej, nasze narzędzie nie może uzyskać do niego dostępu. W takich przypadkach zalecamy zaimportowanie przy użyciu wiersza polecenia dla repozytoriów Git lub zewnętrznego narzędzia do migracji kodu źródłowego dla projektów importowanych z innych systemów kontroli wersji.
Jeśli chcesz dopasować zatwierdzenia w repozytorium do kont użytkowników usługi GitHub autorów podczas importowania. Najpierw przed rozpoczęciem importowania upewnij się, że każdy współautor repozytorium ma konto usługi GitHub.
Repozytoria i pojedyncze pliki podlegają limitom rozmiaru. Aby uzyskać więcej informacji, zobacz About large files on GitHub (Informacje o dużych plikach w usłudze GitHub).
Aby zaimportować repozytorium, wykonaj następujące kroki:
W prawym górnym rogu dowolnej strony wybierz pozycję +, a następnie wybierz pozycję Importuj repozytorium.
W obszarze "Adres URL klonowania starego repozytorium" wpisz adres URL projektu, który chcesz zaimportować.
Wybierz konto użytkownika lub organizację, która ma być właścicielem repozytorium, a następnie wpisz nazwę repozytorium w witrynie GitHub.
Określ, czy nowe repozytorium powinno być publiczne, czy prywatne. Aby uzyskać więcej informacji, zapoznaj się z tematem Ustawianie widoczności repozytorium.
Przejrzyj wprowadzone informacje, a następnie wybierz pozycję Rozpocznij importowanie.
Jeśli stary projekt był chroniony hasłem, wpisz informacje logowania dla tego projektu, a następnie wybierz pozycję Prześlij.
Jeśli istnieje wiele projektów hostowanych pod adresem URL klonowania starego projektu, wybierz projekt, który chcesz zaimportować, a następnie wybierz pozycję Prześlij.
Jeśli projekt zawiera pliki większe niż 100 MB, wybierz, czy zaimportować duże pliki przy użyciu usługi Git Large File Storage, a następnie wybierz pozycję Kontynuuj.
Po pełnym zaimportowaniu repozytorium otrzymasz wiadomość e-mail.
Aktualizowanie autorstwa autora zatwierdzenia za pomocą narzędzia GitHub Importer
Podczas importowania można dopasować zatwierdzenia w repozytorium przy użyciu konta usługi GitHub autora zatwierdzenia. Narzędzie GitHub Importer szuka użytkowników usługi GitHub, których adresy e-mail pasują do autorów zatwierdzeń w importowanych repozytorium. Następnie możesz połączyć zatwierdzenie z jego autorem przy użyciu ich adresu e-mail lub nazwy użytkownika usługi GitHub autora.
Aktualizowanie autorów zatwierdzń
Wykonaj następujące kroki, aby zaktualizować autora zatwierdzenia:
Po zaimportowaniu repozytorium na stronie stanu importu wybierz pozycję Dopasuj autorów.
Obok autora, którego informacje chcesz zaktualizować, wybierz pozycję Połącz.
Wpisz adres e-mail lub nazwę użytkownika usługi GitHub autora, a następnie naciśnij Enter.
Przypisywanie zatwierdzeń do użytkownika usługi GitHub przy użyciu publicznego adresu e-mail
Jeśli autor zatwierdzenia w zaimportowanym repozytorium ma konto usługi GitHub skojarzone z adresem e-mail używanym do tworzenia zatwierdzeń i nie ustawia adresu e-mail zatwierdzenia jako prywatnego. Następnie importer GitHub odpowiada adresowi e-mail skojarzonemu z zatwierdzeniem na publiczny adres e-mail skojarzony z kontem usługi GitHub i przypisuje zatwierdzenie do konta usługi GitHub.
Przypisywanie zatwierdzeń do użytkownika usługi GitHub bez publicznego adresu e-mail
Jeśli autor zatwierdzenia w zaimportowanym repozytorium nie ustawi publicznego adresu e-mail w profilu usługi GitHub lub ustawi adres e-mail zatwierdzenia jako prywatny. Następnie importer usługi GitHub może nie być w stanie dopasować adresu e-mail skojarzonego z zatwierdzeniem z kontem usługi GitHub.
Autor zatwierdzenia może rozwiązać ten problem, ustawiając swój adres e-mail jako prywatny. Ich zatwierdzenia są następnie przypisywane do <username>@users.noreply.github.comelementu , a zaimportowane zatwierdzenia są skojarzone z ich kontem usługi GitHub.
Przypisywanie zatwierdzeń przy użyciu adresu e-mail
Jeśli adres e-mail autora nie jest skojarzony z kontem usługi GitHub, może dodać adres do swojego konta po zaimportowaniu, a zatwierdzenia zostaną poprawnie przypisane.
Jeśli autor nie ma konta usługi GitHub, narzędzie GitHub Importer przypisuje swoje zatwierdzenia na adres e-mail skojarzony z zatwierdzeniami.
Importowanie repozytorium GitHub przy użyciu wiersza polecenia
Jeśli importer GitHub nie jest odpowiedni do Twoich celów, na przykład jeśli istniejący kod jest hostowany w sieci prywatnej, zalecamy zaimportowanie przy użyciu wiersza polecenia.
Przed rozpoczęciem upewnij się, że wiesz:
- Twoja nazwa użytkownika GitHub
- Adres URL klonowania repozytorium zewnętrznego, taki jak
https://external-host.com/user/repo.gitlubgit://external-host.com/user/repo.git(być może zuser@przoduexternal-host.comnazwy domeny)
Na potrzeby demonstracji używamy:
- Konto zewnętrzne o nazwie ext-user
- Zewnętrzny host Git o nazwie
https://external-host.com - Osobiste konto użytkownika usługi GitHub o nazwie ghuser
- Repozytorium w GitHub.com o nazwie repo.git
Wykonaj następujące kroki, aby zaimportować repozytorium zewnętrzne:
Utwórz nowe repozytorium w usłudze GitHub. Zaimportujesz zewnętrzne repozytorium Git do tego nowego repozytorium.
Utwórz nagie klonowanie repozytorium przy użyciu zewnętrznego adresu URL. W wierszu polecenia wprowadź następujące polecenie. To polecenie tworzy pełną kopię danych, ale bez katalogu roboczego do edycji plików i zapewnia czysty, świeży eksport wszystkich starych danych.
$ git clone --bare https://external-host.com/ext-user/repo.git #Makes a bare clone of the external repository in a local directoryWypchnij sklonowane lokalnie repozytorium do usługi GitHub przy użyciu opcji "dublowanie", co gwarantuje, że wszystkie odwołania, takie jak gałęzie i tagi, zostaną skopiowane do zaimportowanego repozytorium.
$ cd repo.git $ git push --mirror https://github.com/ghuser/repo.git #Pushes the mirror to the new repository on GitHub.comUsuń tymczasowe repozytorium lokalne.
$ cd .. $ rm -rf repo.git
Dodawanie lokalnego kodu hostowanego do usługi GitHub
Jeśli masz istniejący kod źródłowy lub repozytoria przechowywane lokalnie na komputerze lub w sieci prywatnej, możesz dodać je do usługi GitHub, wpisując polecenia w terminalu. Wpisując polecenia git bezpośrednio lub przy użyciu interfejsu wiersza polecenia usługi GitHub.
Interfejs wiersza polecenia usługi GitHub to narzędzie typu open source do korzystania z usługi GitHub z poziomu wiersza polecenia komputera. Interfejs wiersza polecenia usługi GitHub może uprościć proces dodawania istniejącego projektu do usługi GitHub przy użyciu wiersza polecenia. Aby dowiedzieć się więcej na temat interfejsu wiersza polecenia usługi GitHub, zapoznaj się z tematem About GitHub CLI (Informacje o interfejsie wiersza polecenia usługi GitHub).
Dodawanie repozytorium lokalnego do usługi GitHub za pomocą interfejsu wiersza polecenia usługi GitHub
Wykonaj następujące kroki, aby dodać repozytorium lokalne za pomocą interfejsu wiersza polecenia usługi GitHub:
W wierszu polecenia przejdź do katalogu głównego projektu.
Zainicjuj katalog lokalny jako repozytorium Git.
git init -b mainPrzygotuj i zatwierdź wszystkie pliki w projekcie.
git add . && git commit -m "initial commit"Aby utworzyć repozytorium dla projektu w usłudze GitHub, użyj polecenia
gh repo create subcommand. Po wyświetleniu monitu wybierz pozycję Wypchnij istniejące repozytorium lokalne do usługi GitHub i wprowadź żądaną nazwę repozytorium. Jeśli chcesz, aby projekt należał do organizacji zamiast konta użytkownika, określ nazwę organizacji i nazwę projektu za pomocą poleceniaorganization-name/project-name.Postępuj zgodnie z interakcyjnymi monitami. Aby dodać zdalne repozytorium i wypchnąć zatwierdzenia, potwierdź tak, gdy zostanie wyświetlony monit o dodanie zdalnego repozytorium i wypchnięcie zatwierdzeń do bieżącej gałęzi.
Alternatywnie, aby pominąć wszystkie monity, podaj ścieżkę do repozytorium z
--sourceflagą i przekaż flagę widoczności (--public,--private, lub--internal). Na przykładgh repo create --source=. --public. Określ zdalne z flagą--remote. Aby wypchnąć zatwierdzenia, przekaż flagę--push. Aby uzyskać więcej informacji na temat możliwych argumentów, zapoznaj się z instrukcją interfejsu wiersza polecenia usługi GitHub.
Dodawanie repozytorium lokalnego do usługi GitHub przy użyciu usługi Git
Wykonaj następujące kroki, aby dodać repozytorium lokalne przy użyciu usługi Git:
Utwórz nowe repozytorium na GitHub.com. Aby uniknąć błędów, nie inicjuj nowego repozytorium przy użyciu funkcji README, licencji ani
gitignore files. Możesz dodać te pliki po wypchnięciu projektu do usługi GitHub.
Otwórz powłokę Git Bash.
Zmień bieżący katalog roboczy na projekt lokalny.
Zainicjuj katalog lokalny jako repozytorium Git.
$ git init -b mainDodaj pliki w nowym repozytorium lokalnym. To polecenie powoduje również przygotowanie ich do pierwszego zatwierdzenia.
$ git add . # Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'.Zatwierdź pliki przygotowane w repozytorium lokalnym.
$ git commit -m "First commit" # Commits the tracked changes and prepares them to be pushed to a remote repository. To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again.W górnej części repozytorium na stronie Szybkie konfigurowanie GitHub.com wybierz przycisk Kopiuj , aby skopiować adres URL repozytorium zdalnego.
W wierszu polecenia dodaj adres URL repozytorium zdalnego. Repozytorium lokalne jest wypychane do tej lokalizacji.
$ git remote add origin <REMOTE_URL> # Sets the new remote $ git remote -v # Verifies the new remote URLPrześlij zmiany z repozytorium lokalnego do GitHub.com.
$ git push origin main # Pushes the changes in your local repository up to the remote repository you specified as the origin
Narzędzia do migracji kodu źródłowego
Do przenoszenia projektów do usługi GitHub można użyć narzędzi zewnętrznych. Zalecamy użycie narzędzia GitHub Importer do importowania projektów z repozytorium Subversion, Mercurial, Team Foundation Version Control (TFVC) lub innego repozytorium Git. Możesz również użyć tych narzędzi zewnętrznych, aby przekonwertować projekt na usługę Git.
Importowanie z podwersji
W typowym środowisku Subversion wiele projektów jest przechowywanych w jednym repozytorium głównym. W usłudze GitHub każdy z tych projektów zazwyczaj mapuje je na oddzielne repozytorium Git dla konta użytkownika lub organizacji. Zalecamy zaimportowanie każdej części repozytorium Subversion do oddzielnego repozytorium GitHub, jeśli:
- Współpracownicy muszą wyewidencjonować lub zobowiązać się do tej części projektu oddzielnie od innych części
- Chcesz, aby różne części miały własne uprawnienia dostępu
Zalecamy następujące narzędzia do konwertowania repozytoriów Subversion na usługę Git:
Importowanie z mercurial
Zalecamy szybkie eksportowanie hg do konwertowania repozytoriów Mercurial na usługę Git.
Importowanie z serwera TFVC
Zalecamy korzystanie z serwera git-tfs w celu przenoszenia zmian między serwerem TFVC i usługą Git.
Aby uzyskać więcej informacji na temat przechodzenia z serwera TFVC (scentralizowanego systemu kontroli wersji) do usługi Git, zobacz Migrowanie do usługi Git z scentralizowanej kontroli wersji.