Övning – Ladda upp ditt projekt till GitHub

Slutförd

Du kan importera lagringsplatser till GitHub med GitHub Importer, kommandoraden eller externa migreringsverktyg.

Om GitHub Importer

Om du har källkod i Subversion, Mercurial, Team Foundation Version Control (TFVC) eller en annan Git-lagringsplats kan du flytta den till GitHub med GitHub Importer. GitHub Importer är ett verktyg som snabbt importerar lagringsplatser för källkod, inklusive incheckningar och revisionshistorik, till GitHub åt dig.

Under en import kan du, beroende på vilket versionskontrollsystem du importerar från, utföra några av följande uppgifter. Autentisera med fjärrlagringsplatsen, uppdatera incheckningsförfattarens attribution, importera lagringsplatser med stora filer eller ta bort stora filer om du inte vill använda Git Large File Storage.

Importåtgärd Subversion Mercurial TFVC Git
Autentisera med fjärrlagringsplats X X X X
Uppdatera incheckningsförfattares attribution X X X
Flytta stora filer till Stor Git-fillagring X X X
Ta bort stora filer från lagringsplatsen X X X

Importera en lagringsplats med GitHub Importer

Om du har ett projekt som finns i ett annat versionskontrollsystem kan du automatiskt importera det till GitHub med verktyget GitHub Importer. GitHub Importer är inte lämplig för alla importer. Om din befintliga kod till exempel finns i ett privat nätverk kan vårt verktyg inte komma åt den. I dessa fall rekommenderar vi att du importerar med hjälp av kommandoraden för Git-lagringsplatser eller ett externt källkodsmigreringsverktyg för projekt som importerats från andra versionskontrollsystem.

Om du vill matcha incheckningarna på lagringsplatsen med författarnas GitHub-användarkonton under importen. Kontrollera först att alla deltagare på din lagringsplats har ett GitHub-konto innan du påbörjar importen.

Lagringsplatser och enskilda filer omfattas av storleksgränser. Mer information finns i Om stora filer på GitHub.

Följ dessa steg för att importera en lagringsplats:

  1. I det övre högra hörnet på en sida väljer du +och väljer sedan Importera lagringsplats.

    Skärmbild av importlagringsplatsens knapp.

  2. Under "Den gamla lagringsplatsens klonings-URL" skriver du URL:en för det projekt som du vill importera.

    Skärmbild av textrutan för den gamla lagringsplatsens URL.

  3. Välj ditt användarkonto eller en organisation som ska äga lagringsplatsen och ange sedan ett namn för lagringsplatsen på GitHub.

    Skärmbild av namnet på den nya importlagringsplatsens ägare.

  4. Ange om den nya lagringsplatsen ska vara offentlig eller privat. Mer information finns i Ange lagringsplatsens synlighet.

    Skärmbild av de nya offentliga eller privata alternativen för lagringsplatsen.

  5. Granska den information du angav och välj sedan Börja importera.

    Skärmbild av knappen Börja importera för en ny lagringsplatsimport.

  6. Om ditt gamla projekt har skyddats med ett lösenord skriver du in inloggningsinformationen för projektet och väljer sedan Skicka.

    Skärmbild av platsen där du kan ange din gamla importör av autentiseringsuppgifter för lagringsplatsen.

  7. Om det finns flera projekt som finns på det gamla projektets klonade URL väljer du det projekt som du vill importera och väljer sedan Skicka.

    Skärmbild av ett urval av projekt som finns på samma URL. projektimportör.

  8. Om projektet innehåller filer som är större än 100 MB väljer du om du vill importera de stora filerna med Git Large File Storage och väljer sedan Fortsätt.

    Skärmbild av filer som är lämpliga för Git Large File Storage-importören.

När lagringsplatsen är helt importerad får du ett e-postmeddelande.

Uppdatera incheckningsförfattares attribution med GitHub Importer

Under en import kan du matcha incheckningar på lagringsplatsen med GitHub-kontot för incheckningsförfattaren. GitHub Importer söker efter GitHub-användare vars e-postadresser matchar författarna till incheckningarna på den lagringsplats som du importerar. Du kan sedan ansluta en incheckning till författaren med hjälp av deras e-postadress eller författarens GitHub-användarnamn.

Uppdatera incheckningsförfattare

Följ dessa steg för att uppdatera en incheckningsförfattare:

  1. När du har importerat lagringsplatsen går du till sidan importstatus och väljer Matcha författare.

    Skärmbild av matchningsförfattarknappen.

  2. Bredvid författaren vars information du vill uppdatera väljer du Anslut.

    Skärmbild av processen för att koppla ihop commit-författare.

  3. Skriv författarens e-postadress eller GitHub-användarnamn och tryck sedan på Retur.

Tilldela incheckningar till en GitHub-användare med en offentlig e-postadress

Om en författare av en commit i ditt importerade arkiv har ett GitHub-konto associerat med den e-postadress de använde för att skapa commitarna, och de inte ställer in sin e-postadress för commit som privat. Sedan matchar GitHub Importer den e-postadress som är associerad med incheckningen till den offentliga e-postadress som är associerad med deras GitHub-konto och tillskriver incheckningen till deras GitHub-konto.

Tilldela incheckningar till en GitHub-användare utan en offentlig e-postadress

Om författaren av en commit i det importerade arkivet inte anger en offentlig e-postadress för sin GitHub-profil eller ställer in sin commit-e-postadress som privat. Sedan kanske GitHub Importer inte kan matcha den e-postadress som är associerad med incheckningen med deras GitHub-konto.

Incheckningsförfattaren kan lösa problemet genom att ange sin e-postadress som privat. Deras incheckningar tillskrivs <username>@users.noreply.github.comsedan , och de importerade incheckningarna är associerade med deras GitHub-konto.

Tilldela incheckningar med hjälp av en e-postadress

Om författarens e-postadress inte är associerad med sitt GitHub-konto kan de lägga till adressen till sitt konto efter importen och incheckningarna tilldelas korrekt.

Om författaren inte har något GitHub-konto tillskriver GitHub Importer sina incheckningar till den e-postadress som är associerad med incheckningarna.

Importera en GitHub-lagringsplats med hjälp av kommandoraden

Om GitHub Importer inte är lämplig för dina syften, till exempel om din befintliga kod finns i ett privat nätverk, rekommenderar vi att du importerar med hjälp av kommandoraden.

Kontrollera att du vet innan du börjar:

  • Ditt GitHub användarnamn
  • Klon-URL:en för den externa lagringsplatsen, till exempel https://external-host.com/user/repo.git eller git://external-host.com/user/repo.git (kanske med en user@ framför domännamnet external-host.com )

I demonstrationssyfte använder vi:

  • Ett externt konto med namnet ext-user
  • En extern Git-värd med namnet https://external-host.com
  • Ett personligt GitHub-användarkonto med namnet ghuser
  • En lagringsplats på GitHub.com med namnet repo.git

Följ dessa steg för att importera den externa lagringsplatsen:

  1. Skapa en ny lagringsplats på GitHub. Du importerar din externa Git-lagringsplats till den nya lagringsplatsen.

  2. Gör en "bare"-klon av lagringsplatsen med hjälp av den externa klonings-URL:en. På kommandoraden anger du följande kommando. Det här kommandot skapar en fullständig kopia av data, men utan en arbetskatalog för redigering av filer, och garanterar en ren, ny export av alla gamla data.

    $ git clone --bare https://external-host.com/ext-user/repo.git
    #Makes a bare clone of the external repository in a local directory 
    
  3. Push-överför den lokalt klonade lagringsplatsen till GitHub med alternativet "spegling", vilket säkerställer att alla referenser, till exempel grenar och taggar, kopieras till den importerade lagringsplatsen.

    $ cd repo.git
    $ git push --mirror https://github.com/ghuser/repo.git
    #Pushes the mirror to the new repository on GitHub.com 
    
  4. Ta bort den tillfälliga lokala lagringsplatsen.

    $ cd ..
    $ rm -rf repo.git 
    

Lägga till lokalt värdbaserad kod till GitHub

Om du har befintlig källkod eller lagringsplatser lagrade lokalt på datorn eller i det privata nätverket kan du lägga till dem i GitHub genom att skriva kommandon i en terminal. Antingen genom att skriva Git-kommandon direkt eller genom att använda GitHub CLI.

GitHub CLI är ett öppen källkod verktyg för att använda GitHub från datorns kommandorad. GitHub CLI kan förenkla processen med att lägga till ett befintligt projekt i GitHub med hjälp av kommandoraden. Mer information om GitHub CLI finns i Om GitHub CLI.

Lägga till en lokal lagringsplats i GitHub med GitHub CLI

Följ dessa steg för att lägga till en lokal lagringsplats med GitHub CLI:

  1. Gå till rotkatalogen för projektet på kommandoraden.

  2. Initiera den lokala katalogen som en Git-lagringsplats.

    git init -b main
    
  3. Mellanlagra och checka in alla filer i projektet.

    git add . && git commit -m "initial commit"
    
  4. Om du vill skapa en lagringsplats för projektet på GitHub använder du gh repo create subcommand. När du uppmanas till det väljer du Push-överföra en befintlig lokal lagringsplats till GitHub och anger önskat namn för lagringsplatsen. Om du vill att projektet ska tillhöra en organisation i stället för ditt användarkonto anger du organisationsnamnet och projektnamnet med organization-name/project-name.

  5. Följ de interaktiva anvisningarna. För att lägga till fjärren och skicka ändringar till lagringsplatsen, bekräfta ja när du uppmanas att lägga till fjärren och skicka ändringarna till den aktuella grenen.

  6. Du kan också hoppa över alla prompter genom att ange sökvägen till lagringsplatsen med --source flaggan och skicka en synlighetsflagga (--public, --private, eller --internal). Exempel: gh repo create --source=. --public Ange en fjärranslutning med --remote flaggan. Skicka flaggan för att skicka incheckningarna --push . Mer information om möjliga argument finns i GitHub CLI-handboken.

Lägga till en lokal lagringsplats i GitHub med Git

Följ de här stegen för att lägga till en lokal lagringsplats med Git:

  1. Skapa en ny lagringsplats på GitHub.com. Undvik fel genom att inte initiera den nya lagringsplatsen med README, licens eller gitignore files. Du kan lägga till dessa filer när projektet har push-överförts till GitHub.

    Skärmbild av skapande av ny lagringsplats.

  2. Öppna Git Bash.

  3. Ändra den aktuella arbetskatalogen till ditt lokala projekt.

  4. Initiera den lokala katalogen som en Git-lagringsplats.

    $ git init -b main
    
  5. Lägg till filerna i den nya lokala lagringsplatsen. Det här kommandot stegar dem också för den första incheckningen.

    $ 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. Checka in de filer som mellanlagras på din lokala lagringsplats.

    $ 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. Längst upp på lagringsplatsen på GitHub.com snabbinstallationssida väljer du knappen Kopiera för att kopiera fjärrlagringsplatsens URL.

    skärmbild kopiera snabbkonfiguration av url för fjärrlagringsplats

  8. I kommandotolken lägger du till URL:en för fjärrlagringsplatsen. Den lokala lagringsplatsen skickas till den här platsen.

    $ git remote add origin <REMOTE_URL> 
    # Sets the new remote
    $ git remote -v
    # Verifies the new remote URL
    
  9. Skicka ändringarna i din lokala lagringsplats till GitHub.com.

    $ git push origin main
    # Pushes the changes in your local repository up to the remote repository you specified as the origin
    

Verktyg för källkodsmigrering

Du kan använda externa verktyg för att flytta dina projekt till GitHub. Vi rekommenderar att du använder GitHub Importer för att importera projekt från Subversion, Mercurial, Team Foundation Version Control (TFVC) eller en annan Git-lagringsplats. Du kan också använda dessa externa verktyg för att konvertera projektet till Git.

Importera från subversion

I en typisk subversionsmiljö lagras flera projekt i en enda rotlagringsplats. På GitHub mappas vart och ett av dessa projekt vanligtvis till en separat Git-lagringsplats för ett användarkonto eller en organisation. Vi rekommenderar att du importerar varje del av din Subversion-lagringsplats till en separat GitHub-lagringsplats om:

  • Medarbetare måste checka ut eller checka in den delen av projektet separat från de andra delarna
  • Du vill att olika delar ska ha egna åtkomstbehörigheter

Vi rekommenderar dessa verktyg för att konvertera subversionslagringsplatser till Git:

Importera från Mercurial

Vi rekommenderar hg-fast-export för konvertering av Mercurial-lagringsplatser till Git.

Importera från TFVC

Vi rekommenderar git-tfs för att flytta ändringar mellan TFVC och Git.

Mer information om hur du flyttar från TFVC (ett centraliserat versionskontrollsystem) till Git finns i Migrera till Git från centraliserad versionskontroll.