Ćwiczenie — przekazywanie projektu do usługi GitHub

Ukończone

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:

  1. W prawym górnym rogu dowolnej strony wybierz pozycję +, a następnie wybierz pozycję Importuj repozytorium.

    Zrzut ekranu przycisku importu repozytorium.

  2. W obszarze "Adres URL klonowania starego repozytorium" wpisz adres URL projektu, który chcesz zaimportować.

    Zrzut ekranu przedstawiający stare pole tekstowe adresu URL repozytorium.

  3. Wybierz konto użytkownika lub organizację, która ma być właścicielem repozytorium, a następnie wpisz nazwę repozytorium w witrynie GitHub.

    Zrzut ekranu przedstawiający nową nazwę właściciela repozytorium importu.

  4. Określ, czy nowe repozytorium powinno być publiczne, czy prywatne. Aby uzyskać więcej informacji, zapoznaj się z tematem Ustawianie widoczności repozytorium.

    Zrzut ekranu przedstawiający opcje publiczne lub prywatne nowego repozytorium.

  5. Przejrzyj wprowadzone informacje, a następnie wybierz pozycję Rozpocznij importowanie.

    Zrzut ekranu przedstawiający przycisk Rozpocznij importowanie nowego repozytorium.

  6. Jeśli stary projekt był chroniony hasłem, wpisz informacje logowania dla tego projektu, a następnie wybierz pozycję Prześlij.

    Zrzut ekranu przedstawiający lokalizację do wprowadzania starego importera poświadczeń repozytorium.

  7. 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.

    Zrzut ekranu przedstawiający wybór projektów znajdujących się pod tym samym adresem URL oraz importer projektów.

  8. 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.

    Zrzut ekranu przedstawiający pliki odpowiednie dla importera usługi Git Large File Storage.

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:

  1. Po zaimportowaniu repozytorium na stronie stanu importu wybierz pozycję Dopasuj autorów.

    Zrzut ekranu przycisku

  2. Obok autora, którego informacje chcesz zaktualizować, wybierz pozycję Połącz.

    Zrzut ekranu przedstawiający proces tworzenia zatwierdzenia połączenia.

  3. 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.git lub git://external-host.com/user/repo.git (być może z user@ przodu external-host.com nazwy 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:

  1. Utwórz nowe repozytorium w usłudze GitHub. Zaimportujesz zewnętrzne repozytorium Git do tego nowego repozytorium.

  2. 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 directory 
    
  3. Wypchnij 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.com 
    
  4. Usuń 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:

  1. W wierszu polecenia przejdź do katalogu głównego projektu.

  2. Zainicjuj katalog lokalny jako repozytorium Git.

    git init -b main
    
  3. Przygotuj i zatwierdź wszystkie pliki w projekcie.

    git add . && git commit -m "initial commit"
    
  4. 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ą polecenia organization-name/project-name.

  5. 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.

  6. Alternatywnie, aby pominąć wszystkie monity, podaj ścieżkę do repozytorium z --source flagą i przekaż flagę widoczności (--public, --private, lub --internal). Na przykład gh 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:

  1. 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.

    Zrzut ekranu przedstawiający tworzenie nowego repozytorium.

  2. Otwórz powłokę Git Bash.

  3. Zmień bieżący katalog roboczy na projekt lokalny.

  4. Zainicjuj katalog lokalny jako repozytorium Git.

    $ git init -b main
    
  5. Dodaj 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'.
    
  6. 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.
    
  7. W górnej części repozytorium na stronie Szybkie konfigurowanie GitHub.com wybierz przycisk Kopiuj , aby skopiować adres URL repozytorium zdalnego.

    Zrzut ekranu przedstawiający szybkie konfigurowanie adresu URL repozytorium zdalnego

  8. 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 URL
    
  9. Prześ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.