
Vad är Git?
Git är ett distribuerat versionshanteringssystem med öppen källkod. Det gör det möjligt för utvecklare och dataforskare att spåra kod, merga ändringar och återgå till äldre versioner - AWS. Det låter dig synka ändringar med en fjärrserver. Tack vare sin flexibilitet och popularitet har Git blivit en industristandard eftersom det stöder nästan alla utvecklingsmiljöer, kommandoradsverktyg och operativsystem.
Hur fungerar Git?
Git lagrar dina filer och deras utvecklingshistorik i ett lokalt repo. Varje gång du sparar dina ändringar skapar Git en commit. En commit är en ögonblicksbild av aktuella filer. Dessa commits länkas till varandra och bildar en graf över utvecklingshistoriken, som visas nedan. Det låter oss återgå till en tidigare commit, jämföra ändringar och se projektets framsteg - Azure DevOps. Commits identifieras av en unik hash som används för att jämföra och återställa gjorda ändringar.

En graf över utvecklingshistoriken
Brancher
Brancher är kopior av källkoden som arbetar parallellt med huvudversionen. För att spara de gjorda ändringarna mergar du branchen in i huvudversionen. Denna funktion främjar konfliktfritt teamwork. Varje utvecklare har sin uppgift, och med brancher kan de arbeta på en ny funktion utan att andra i teamet stör. När uppgiften är klar kan du merga de nya funktionerna med huvudversionen (master-branchen). Om du vill lära dig hur man klonar en branch, kolla in den här handledningen om Git Clone Branch.

Lägga till ny funktion i repo
Commits
Det finns tre tillstånd för filer i Git: modified, staged och commit. När du gör ändringar i en fil sparas ändringarna i den lokala katalogen. De är inte en del av Gits utvecklingshistorik. För att skapa en commit måste du först stagea ändrade filer. Du kan lägga till eller ta bort ändringar i staging-området och sedan paketera dessa ändringar som en commit med ett meddelande som beskriver ändringarna.

Tre tillstånd för filer i Git
Vilka är fördelarna med Git?
- Spåra ändringar: Det låter utvecklare se historiska ändringar. Utvecklingshistorik gör det enkelt att identifiera och åtgärda buggar.
- IDE-integration: Tack vare sin popularitet finns Git-integration i alla utvecklingsmiljöer, till exempel VSCode och JupyterLab.
- Teamsamarbete: Ett utvecklarteam kan se sina framsteg, och med brancher kan de arbeta individuellt med en uppgift och merga ändringar med huvudversionen. Pull requests, att lösa mergekonflikter och kodgranskning främjar teamsamarbete.
- Distribuerad VCS: I ett distribuerat system finns ingen centraliserad fillagring. Det finns flera säkerhetskopior för samma projekt. Detta gör att utvecklare kan arbeta offline och committa ändringar.
Git för datavetenskapsprojekt
Git ger versionshantering för skript, metrik, data och modeller. Genom att använda Git-tillägget git-lfs kan du lagra och versionshantera stora databaser och maskininlärningsmodeller. I ett typiskt datavetenskapsprojekt har du en Jupyter-notebook, dataset, modell, metadata och modellmetrik. Metadatan inkluderar filer som innehåller metainformation om maskininlärningsmodellen, features, modellparametrar och automationsfiler. Allt detta behövs för att övervaka framstegen i AI-applikationer och lösa problem.
Att spåra experiment inom datavetenskap hjälper forskare att återställa oavsiktliga ändringar, välja det bästa experimentet baserat på prestandametrik och samarbeta med andra i teamet. Diagrammet nedan visar hur ändringar i data eller kod påverkar metadata och modellens resultat. Att spåra dessa ändringar kan också hjälpa andra i teamet att hitta en bättre lösning. Lär dig allt om Git i det senaste blogginlägget från Summer Worsley.

Git för ett datavetenskapsprojekt
Samarbete med GitHub
GitHub är en molnbaserad plattform för mjukvaruutveckling. Den används vanligtvis för att spara filer, spåra ändringar och samarbeta i utvecklingsprojekt. Under senare år har GitHub blivit den mest populära sociala plattformen för mjukvaruutvecklingscommunities. Individer kan bidra till projekt med öppen källkod och buggrapporter, diskutera nya projekt och upptäcka nya verktyg.
Data scientists och maskininlärningsingenjörer följer mjukvaruutvecklarnas väg och integrerar arbetsflödet med GitHub. Genom att göra detta kan de dela sitt forskningsarbete, möjliggöra bidrag från communityn och samarbeta med datateam. Du hittar alla möjliga datavetenskaps- och maskininlärningsprojekt, guider, handledningar och resurser på plattformen. För studenter har plattformen blivit en möjlighet att skaffa arbetslivserfarenhet och i förlängningen få jobb på ett prestigefyllt företag.
Portfolio
De flesta tekniska rekryterare kommer att be om portfolioprojekt eller GitHub-profil. Detta hjälper dem avgöra om en kandidat passar för deras företag. Det rekommenderas starkt att skapa en GitHub-profil och uppdatera den regelbundet. Rekryterande chefer letar alltid efter kandidater med stor erfarenhet av mjukvaruutveckling och som bidrar till projekt med öppen källkod. Att kunna analysera GitHub-portföljen hjälper dem att förbereda frågor för tekniska intervjuer.

GitHub-profil
GitHub gör det möjligt för dataforskare att visa upp sina projekt, och det kan också räknas som arbetserfarenhet i ditt cv. Att visa upp portfolioprojekt skapar också möjligheter att samarbeta, starta företag och bedriva forskning.

Portfolioprojekt
Funktioner
GitHub erbjuder också olika andra funktioner som är minst lika viktiga som att visa upp en portfolio. Det är nödvändigt att lära sig om varje funktion så att du kan integrera dem i dina datavetenskapsprojekt.
- Öppen källkod: GitHub erbjuder ett komplett ekosystem för open source-projekt. Du kan sponsra maintainers, bidra till ett projekt, använda verktyg med öppen källkod i ditt befintliga projekt och marknadsföra ditt arbete.
- Community-samarbete: GitHub har blivit en community-plattform där issues, funktionsförslag, kod- och dokumentationsbidrag kan diskuteras.
- Explore: Fliken GitHub Explore hjälper dig att upptäcka nya projekt, trendande verktyg och utvecklarevent.
- GitHub Gists: Du kan dela kodsnuttar eller bädda in dem i en blogg eller på en webbplats.
- GitHub CLI: Låter dig göra merge requests, granska kod, kolla issues och följa framsteg från kommandoraden.
- Gratis lagring: obegränsad lagring för privata och offentliga repos.
- Webbhosting: Du kan publicera din portfoliosajt eller dokumentation. GitHub Pages ger en enkel upplevelse för att bygga och deploya webbplatser.
- Codespace: en molnbaserad utvecklingsmiljö integrerad med ditt GitHub-repo.
- Project: ett anpassningsbart, flexibelt verktyg för att planera och spåra arbetet på GitHub.
- Automation: GitHub Actions automatiserar utvecklingsflöden som build, test, publish, release och deployment.
- Sponsor: Du kan stödja ditt favoritprojekt med öppen källkod eller utvecklare genom att betala en månadsvis eller engångsavgift. Det låter också utvecklare använda tredjepartsbetalningsplattformar som ko-fi.
Grundläggande kommandon
Innan vi kastar oss in i att hantera datavetenskapsprojekt, låt oss lära oss de vanligaste Git-kommandona som du kommer att använda i varje projekt. De grundläggande kommandona omfattar att initiera ett Git-repo, spara ändringar, kontrollera loggar, pusha ändringar till fjärrservern och merga.
-
git initskapar ett Git-repo i en lokal katalog. -
git clone <remote-repo-address>: kopiera hela repot från en fjärrserver till lokal katalog. Du kan också använda det för att kopiera lokala repos. -
git add <file.txt>: lägg till en enskild fil eller flera filer och mappar till staging-området. -
git commit –m “Message”: skapa en ögonblicksbild av ändringar och spara den i repot. -
git configanvänds för att ställa in användarspecifika konfigurationer som e-post, användarnamn och filformat. -
git statusvisar listan över ändrade filer eller filer som ännu inte har stageats och committats. -
git push <remote-name> <branch-name>: skicka lokala commits till repots fjärrgren. -
git checkout -b <branch-name>: skapar en ny gren och byter till den nya grenen. -
git remote –v: visa alla fjärr-repos. -
git remote add <remote-name> <host-or-remoteURL>: lägg till fjärrserver till lokalt repo. -
git branch –d <branch-name>: ta bort grenen. -
git pull mergarcommits till en lokal katalog från ett fjärrrepo. -
git merge <branch-name>: efter att ha löst mergekonflikter blandar kommandot in den valda grenen i den aktuella grenen. -
git logvisar en detaljerad lista över commits för den aktuella grenen.

Fullständig utveckling med GitHub
Om du vill lära dig fler kommandon, kolla in vårt Git-fusklapp.
Kom igång
I det här avsnittet ska vi använda Git för att spåra ett datavetenskapsprojekt och GitHub som fjärrserver. Vi lär oss hur man installerar Git, skapar och klonar ett repo från GitHub, kör maskininlärningsexperiment och pushar ändringar (notebook, modell, data) till GitHub med Windows PowerShell 7.
Installera Git
Git stöder alla operativsystem. Du kan installera det med kommandoradsverktyg eller genom att ladda ner och installera setup-filen direkt.
Linux
För Debian/Ubuntu-baserade operativsystem, använd `apt-get install git`, och om du använder ett annat Linux-baserat system, kolla den kompletta listan med installationskommandon här.
macOS
Om du har homebrew installerat, använd detta kommando för att ladda ner och installera Git: `brew install git`. Du kan också ladda ner det binära installationsprogrammet och köra setupen.
Windows
Att installera Git på Windows är enkelt. Gå bara till nedladdningssidan, klicka på din specifika Windows-version och ladda ner och installera setupen. Om du har winget-verktyget kan du installera det genom att skriva winget install --id Git.Git -e --source winget i PowerShell.
Efter att du installerat Git, se till att du har konfigurerat användarnamn och e-post. Denna information används för att signera commits.
git config --global user.name "your-user-name"
git config --global user.email "your@email.com"
För mer djupgående information om hur man installerar Git, klicka här.
Initiera projektet
Om du har ett GitHub-konto, klicka på +-knappen och välj nytt repo. Skriv sedan in reponamnet och lägg till en enkel beskrivning. Det skapar ett tomt offentligt repo.

Skapa projekt
Det finns många sätt att klona fjärr-repos till den lokala katalogen, och GitHub ger en detaljerad guide om hur man klonar, lägger till remote och initierar ett Git-projekt.

GitHub-klon
Vi kan enkelt klona repot genom att ange en HTTPS-länk. Se till att du befinner dig i arbetskatalogen via kommandotolken eller PowerShell.
git clone https://github.com/kingabzpro/DataCamp-Git.git
>>> Cloning into 'DataCamp-Git'...
>>> warning: You appear to have cloned an empty repository.
cd .\DataCamp-Git\
ELLER
Skapa en ny katalog kallad “DataCamp-Git” och initiera Git med ett enkelt kommando. Lägg sedan till en anslutning till fjärr-repot så att du kan synka ditt arbete med GitHub.
mkdir DataCamp-Git
cd .\DataCamp-Git
git init
>>> Initialized empty Git repository in C:/Repository/GitHub/DataCamp-Git/.git/
git remote add origin https://github.com/kingabzpro/DataCamp-Git.git
ELLER
Om du redan har ett projekt i en katalog, initiera bara Git med `git init` och lägg till GitHub-remote, som visas ovan.
En enkel commit
Innan vi lägger till filer i vårt repo, se till att du är i rätt lokala katalog.
Vi börjar enkelt och skapar en README-fil med rubriken DataCamp-Git. Sedan lägger vi till den i staging-området med `git add`.
echo "# DataCamp-Git" >> README.md
git add README.md
Git status visar att vi är på main-branchen och att filen `README.md` är stagead och redo att committas.
git status
>>> On branch main
>>> No commits yet
>>> Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
För att skapa vår första commit använder vi `git commit` med ett meddelande. Som vi kan se har den första committen lagts till under hashen ed9c886.
git commit -m "first commit"
>>> [main (root-commit) ed9c886] first commit
>>> 1 file changed, 1 insertion(+)
>>> create mode 100644 README.md
Lägga till projektfiler
Vi kommer att använda DataCamp Workspace MasterCard Stock Price with LSTM and GRU och ladda ner filer. Författaren till projektet har förbehandlat data och tränat tidsseriedata på LSTM- och GRU-modeller. Lär dig mer om projektet genom att läsa Recurrent Neural Network Tutorial (RNN).
För att spara modellfilen har vi lagt till en ny kodcell i projektets Jupyter-notebook. Det nya skriptet skapar en ny katalog som heter “model” och sparar både LSTM- och GRU-modellerna.
!mkdir -p model
model_lstm.save('model/LSTM')
model_gru.save('model/GRU')
Som vi kan se har Git-repot en data-mapp som innehåller CSV-filer, modellen-mappen med modellens vikter och metadata.

Vi stagear nu alla filer. Du kan lägga till valfri katalog, fil eller data efter det första kommandot.
git add .\data .\model LSTM_GRU.ipynb RNN.png
ELLER
Om du vill lägga till alla filer i staging-området, använd punkt.
git add .
Commit och push
Vi committar alla ändringar med ett enkelt meddelande, och utdata visar alla nya filer i create-läge.
git commit -m "project files added"
>>> [main aa3e19a] project files added
>>> 10 files changed, 5020 insertions(+)
>>> create mode 100644 LSTM_GRU.ipynb
>>> create mode 100644 RNN.png
>>> create mode 100644 data/Mastercard_stock_history.csv
>>> create mode 100644 data/Mastercard_stock_info.csv
>>> create mode 100644 model/GRU/saved_model.pb
>>> create mode 100644 model/GRU/variables/variables.data-00000-of-00001
>>> create mode 100644 model/GRU/variables/variables.index
>>> create mode 100644 model/LSTM/saved_model.pb
>>> create mode 100644 model/LSTM/variables/variables.data-00000-of-00001
create mode 100644 model/LSTM/variables/variables.index
Synkning med GitHubs fjärrrepo kräver ett remote-namn och ett branch-namn `git push <remote-name> <branch-name>`. Om du bara har en remote och en gren fungerar `git push`.
Efter `git push` kommer ett popup-fönster be om inloggningsuppgifter, lägg bara till ditt GitHub-användarnamn eller lösenord. Du kan också generera personliga åtkomsttokens och ange dem istället för lösenordet. Läs mer i Git Push and Pull Tutorial.
git push
>>> Enumerating objects: 21, done.
>>> Counting objects: 100% (21/21), done.
>>> Delta compression using up to 4 threads
>>> Compressing objects: 100% (19/19), done.
>>> Writing objects: 100% (21/21), 1.83 MiB | 1.59 MiB/s, done.
>>> Total 21 (delta 2), reused 0 (delta 0), pack-reused 0
>>> remote: Resolving deltas: 100% (2/2), done.
>>> To https://github.com/kingabzpro/DataCamp-Git.git
>>> * [new branch] main -> main
Vi ska nu kontrollera vårt GitHub-repo kingabzpro/DataCamp-Git för att se om vi har pushat ändringarna till fjärr. GitHub-repot har alla filer, data och modeller.

Fjärr-push till GitHub
Git-brancher
Det rekommenderas att arbeta med brancher: om du till exempel vill arbeta med projektdokumentation, skapa en dokumentations-branch med git checkout eller git branch. Gör ändringar i README-filen och när du har färdigställt ändringarna, merga branchen med basen.
I vårt fall har vi skapat och bytt till en ny branch som heter readme.
git checkout -b readme
Låt oss redigera README-filen genom att lägga till en beskrivning av projektet och länka till RNN DataCamp Workspace och handledning. Efter det stagear vi ändringarna och sparar en ögonblicksbild av ändringarna med ett meddelande.
git add README.md
git commit -m "project description and links to blog"
>>> [readme f3b8b9b] project description and links to blog
>>> 1 file changed, 8 insertions(+)
Fjärr-repot har ingen readme-branch. För att skapa en ny gren och pusha ändringar använder vi “readme:readme”. Utdata visar att nya brancher har skapats och att både lokala och fjärr-`readme` är synkade.
git push origin readme:readme
>>> remote: Resolving deltas: 100% (1/1), completed with 1 local object.
>>> remote: Create a pull request for 'readme' on GitHub by visiting:
>>> remote: https://github.com/kingabzpro/DataCamp-Git/pull/new/readme
>>> remote:
To https://github.com/kingabzpro/DataCamp-Git.git
>>> * [new branch] readme -> readme
Du kan se att vi har pushat den lokala grenen till GitHub med en modifierad version av README.md-filen.

Readme-branch på GitHub
Pull request
Den här funktionen är vanlig i organisationer. Till exempel har en mjukvaruutvecklare arbetat på en ny funktion och vill merga ändringar till huvudgrenen på fjärren. Vi skapar nu en pull request med GitHubs GUI genom att klicka på knappen för pull request. Välj sedan readme-branchen som vi vill merga med basen (main). Du kan skriva en detaljerad förklaring av vilka funktioner som lagts till och klicka på knappen för pull request.

Pull request från readme till main
Maintainern för repot kommer att jämföra dina ändringar och merga dem när de har passerat alla tester. I vårt fall är du maintainer, så klicka på merge request för att blanda in ändringarna i huvudgrenen.

Merge pull request på GitHub
Grattis, vi har skapat en pull request och merga den med huvudgrenen. Du kan se ändringarna på main-branchen här.
Om du vill se alla ändringar i ditt git-repo, skriv bara `git log`, så visas historiska ändringar i ditt projekt. Att logga ändringar i datavetenskapsprojekt är viktigt, och Git hjälper oss att spåra alla ändringar, även stora dataset.

Historik över Git-loggar
Avslutande tankar
GitOps är avgörande för utveckling av dataapplikationer. De har blivit en nödvändig färdighet för alla typer av IT-jobb; till och med akademiska forskare använder dem för att dela experimentell kod med en bredare publik. GitHub spelar å andra sidan en större roll i att främja open source-projekt genom att erbjuda ett fritt ekosystem för mjukvaruutveckling för alla.
I den här handledningen har vi lärt oss om Git och GitHub och varför de är viktiga för datavetenskapsprojekt. Handledningen introducerar också grundläggande Git-kommandon och ger praktisk erfarenhet av hur man spårar ändringar i data, modeller och kod. Om du vill lära dig mer om Git, ta kursen Introduction to Git på DataCamp. Du kan också läsa om vikten av GitHub Foundations-certifiering och hur den kan hjälpa din karriär.
Vanliga frågor om Git
Vad är Git?
Ett distribuerat versionshanteringssystem med öppen källkod. Det låter utvecklare lagra, versionshantera och visualisera ändringar i ett utvecklingsprojekt. Det främjar flexibel teamwork och optimerade arbetsflöden.
Vad står Git för?
Det är inte en akronym. Enligt skaparen Linus Torvalds: “Git kan betyda vad som helst, beroende på ditt humör.” Det är en kombination av tre slumpmässiga bokstäver som inte används av något UNIX-kommando.
Hur klonar jag ett Git-repo?
Skriv bara `git clone <remote repository address>` i en terminal. Du kan klona lokala och fjärrliggande repos. Både SSH- och HTTPS-protokoll stöds.
Hur tar man bort en gren i Git?
För att ta bort en lokal gren, använd `git branch -d <local_branch_name>`, och för att ta bort den fjärrliggande grenen, använd `git push <remote_name> -d <remote_branch_name>`.
Hur byter man gren i Git?
Växla till en befintlig gren med `git checkout <branch name>` eller skapa och växla till en ny gren med `git checkout -b <branch name>`.
Hur installerar jag Git?
För Linux-system använd `apt-get install git`, och för andra operativsystem, kolla git-scm.com.
Är Git gratis?
Ja, det är gratis och öppen källkod under GPL-2.0-licensen.
Vad är Git Bash?
Det är en Microsoft Windows-applikation som ger Unix-baserade shellverktyg och upplevelse.
Hur skapar man en ny gren i Git?
Använd kommandot `git branch <new-branch> <base-branch>` i terminalen. För att skapa och byta till en ny gren, använd `git checkout -b <branch name>`.
Vad gör git pull?
Det uppdaterar den lokala versionen av ett repo från en fjärrserver, kopierar alla ändringar från ett fjärrrepo och mergar dem med den lokala katalogen. Den här processen kräver ofta att du löser mergekonflikter.
Hur forkar man ett repo i Git?
Forkning i GitHub är processen att skapa en kopia av ett repo till användarens GitHub-konto från ett annat konto. Det görs vanligtvis för community-bidrag eller teamwork.
Hur byter man namn på en gren i Git?
För det lokala repot är det enkelt: använd bara `git branch -m <old-name> <new-name>`. För att byta namn på en fjärrgren måste vi först ta bort den gamla grenen med `git push origin --delete <old-name>` och sedan pusha den nya grenen `git push -u origin <new_name>`.
Hur tar man bort ett Git-repo?
Du kan radera den lokala mappen eller ta bort .git-mappen med `rm -fr .git`. För GitHub, gå till repo-inställningarna och längst ner på sidan hittar du alternativet för att radera.
Hur installerar man Git på Windows?
Ladda ner Windows-installationsprogrammet från sajten och kör installationen, vilket installerar Git Bash, Git CDM och Git GUI.
Hur återställer man en commit i Git?
Använd `git revert <commit sha>` vilket kräver en unik hashkod för en tidigare commit. Du kan också använda `git revert HEAD~2`, vilket betyder två commits bakom HEAD.