diff --git a/JN7/JN7_git.ipynb b/JN7/JN7_git.ipynb index 0eedadb3f05e5daa1d893023a40bf7ba68ec7d41..d70fcaf36d0b26050f324d308e7a3cbab75eb24e 100644 --- a/JN7/JN7_git.ipynb +++ b/JN7/JN7_git.ipynb @@ -1092,20 +1092,138 @@ }, { "cell_type": "markdown", - "metadata": { - "heading_collapsed": true - }, + "metadata": {}, "source": [ "# Bruke GUI med Git\n", "<a id = 'git_gui'></a>" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Til nå har vi sett på hvordan vi bruker Git fra en shell (powershell på Windows, terminalen på Linux og Mac). Det er viktig å forstå hvordan man bruker det, men det finnes også programmer som tilbyr grafisk visualisering av Git. Disse kan du bruke i stedet for å skrive git kommandoer i en shell, men heller trykke på knapper. Slike programmer kan være mer brukervennlige for nybegynnere i Git. Disse tilbyr ofte god visualisering av ulike Git konsepter slik som commits, branches, staging, merge osv. Det kan også være et enklere verktøy å bruke til å løse potensielle merge conflicts og tydelig se hva hver Git kommandoer i praksis gjør. \n", + "\n", + " \n", + "\n", + "Vi skal se på GitKraken som et eksempel i guiden under, som per juli 2020 har pro versjonen gratis for studenter som registrerer seg på GitHub som student. GitKraken fungerer for hvilken som helst operativsystem. Merk at dette er et kommersielt program, og om du velger å bruke det er helt valgfritt. Det finnes også andre gratis open-source løsninger, en oversikt over disse finner du ved å trykke [her](https://acodez.in/git-gui-clients/). Prinsippet er ofte det samme, fordi de alle er basert på Git. Hvilket program som er best for deg vil avhenge av operativsystem. [Denne linken her](https://acodez.in/git-gui-clients/) gir en beskrivelse av de opplistede GUI programmene for Git. \n", + "\n", + "Om du ønsker å følge videoen under og komme i gang med GitKraken, må du først lage en GitHub bruker som student hvis du ikke har gjort det enda. Trykk [her](https://education.github.com/students) og videre på knappen 'Get benefits for students'. Sørg for å bruke NTNU-mailen din når du registerer deg som student. \n", + "\n", + "Last deretter ned GitKraken ved å trykke [her](https://www.gitkraken.com/download)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Kort introduksjon til GitKraken" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Først må vi åpne et prosjekt som ligger på PC-en din og som inneholder en git repository. Dette kan gjøres på flere måter:\n", + "\n", + "1. Du kan åpne et prosjekt som enten allerede er klonet fra en remote repository (som f.eks GitHub) til PC-en din, eller som har en lokal git repo. Da har du allerede enten en git repo og mappen med kodefilene som lå ute på nettet eller en lokal git repo i mappen med kodefilene dine som du har laget fra før. Uansett om prosjektet er klonet eller har en lokal git repo, kan du åpne dette med å først trykke på 'Open a repo' markert i bildet under \n", + "\n", + " **Bilde kommer** \n", + " og deretter trykke 'Open a Repository' markert på bildet under. \n", + " **Bilde kommer**\n", + " Videre kan du velge prosjektet ditt fra filutforsker/finder som dukker opp. \n", + "\n", + "2. Alternativt kan du klone et prosjekt fra en remote repository direkte i GitKraken. Da velger du alternativet, 'Clone a repo' i stedet som er markert i figuren under. \n", + " **Bilde kommer**\n", + "\n", + " På det nye vinduet som dukker opp, kan du velge hvilken mappe du vil klone *til* og gi den URL-en til nettsiden du vil klone *fra* i feltene vist i bildet under. \n", + " **Bilde kommer*\n", + "\n", + "3. Gitt en mappe med kodefiler som ligger lokalt på PC-en din som du ønsker å lage en git repo på, kan du velge alternativet 'Start a local repo' i stedet markert i bildet under.\n", + " **Bilde kommer** \n", + " \n", + " Denne gjør samme jobben som kommandoen, `git init` gjør. Da lager du et git repo lokalt på PC-en din og kan begynne å bruke git på kodefilene i den samme mappen. Men med dette alternativet, er du ikke koblet til en remote repo. \n", + "\n", + "4. Som siste alternativ, kan du velge å lage en remote repository på f.eks GitHub, GitLab eller en annen tjeneste direkte i GitKraken. Dette kan du gjøre ved å trykke en av tjenestene under 'Start a hosted repo' der du har valget mellom å hoste prosjektet ditt på GitHub, GitLab, Bitbucket eller Azure DevOps. Trykk på en av disse ønskede tjenestene markert i bildet under\n", + " **Bilde kommer**\n", + " \n", + " Denne handlingen vil tilsvare kommandoen `git remote add origin <url>` og kobler deg opp til tjenesten direkte, slik at du slipper å lage denne manuelt på nettsiden. \n", + " \n", + " Da dukker følgende vindu opp:\n", + " **Bilde kommer**\n", + " og du kan nå velge den mappen på PC-en din som du ønsker å koble til den remote repositorien. \n", + " \n", + "\n", + "I eksempelet her, har jeg klonet et prosjekt fra GitHub og åpnet dette i GitKraken. Da dukker følgende vindu opp:\n", + "**Bilde kommer** \n", + "\n", + "Nå som den er åpnet, så ser vi at vi i midten har en tidslinje, hvor vi ser hvilke commits som har blitt gjort, sammen med meldingen. Vi kan også se rundinger med ulike figurer, og om du holder over ser du navnet til personen som gjore committen. Vi ser også ulike grener, og hvor de er \"merget\" sammen med master grenen. Grener er visualisert som utstikkere og du ser en merge ved at en utstikker går inn i en annen. \n", + "\n", + " \n", + "\n", + "Til høyre ser vi filer som har blitt endret siden forrige commit, som er delt inn i to seksjoner. Øverst er det \"Unstaged Files\", hvor filene som har blitt endret står, men som ikke er \"staga\". \n", + "\n", + " \n", + "\n", + "Vi kan trykke på filnavnet, og vi ser da en oversikt over hvilke kodelinjer som har endret seg. Linjer som ble fjernet vises i rød, og de som er lagt til vises i grønn. Vi kan også trykke på \"Split View\" for å se den tidligere versjonen sammen med den nye. \n", + "\n", + " \n", + "\n", + "For å legge til i stage area, tilsvarende å skrive git add i terminalen, kan vi enten stage alle endringene, ved å trykke på \"Stage all changes\". Ellers kan man holde over filnavnet, og velge \"Stage File\". \n", + "\n", + " \n", + "\n", + "Vi har endret litt på oving_2.py, og ønsker å stage denne, og kommite endringene. da trykker vi på Stage File, og skriver inn en melding \"oppgave 2\", og trykker commit. \n", + "\n", + " \n", + "\n", + "Nå må vi skrive inn en melding i \"Commit Message\", og trykke kommit. Da ser vi at det dukker opp en ny kommit i treet. \n", + "\n", + " \n", + "\n", + "Nå kan vi også lage en ny branch, ved å trykke på Branch knappen, og vi skriver inn navnet til branchen. Vi kan kalle den \"while-loop\". Vi ser at vi automatisk nå er i while-loop branchen, ved at det er avkrysset i grønt. ved siden av grena vi er inne i. For å bytte gren kan vi dobbeltklikke på grena vi vil inn i \n", + "\n", + " \n", + "\n", + "Vi kan nå åpne en fil, vi åpner her oving_3.py, og gjøre en liten endring. Da ser vi igjen at fila er i staging området, vi velger fila, og skriveer en melding \"startet øving 3\", og kommiter. Nå ser vi i oversikten i midten at while-loop grena ligger\"fremfor\" master, fordi har gjort endringer i denne grena. \n", + "\n", + " \n", + "\n", + "for å merge de to grenene sammen, kan vi dra grena vi er i over \"master branchen\" og velger \"merge while-loop with master\". \n", + "\n", + " \n", + "\n", + "Vi ser da at det står \"merge branch new_branch into master\" \n", + "\n", + " \n", + "\n", + "Vi kan slette en branch ved å først bytte vekk fra den vi ønsker å slette (merk at om du prøver å slette en gren du \"er i\" så får du feilmelding\"), også høyreklikke i menyen og velg \"Delete while_loop\". \n", + "\n", + " \n", + "\n", + " \n", + "\n", + "Om man er koblet til en remote, så kan man se at endringer har blitt gjort, og vi må da bruke \"pull\" for å hente ned koden, og merge med koden vår. \n", + "\n", + " \n", + "\n", + "For å pulle kode trykker du på \"pull\" knappen (vis dette). \n", + "\n", + " \n", + "\n", + "Vi ser at vi har gjort noen endringer i koden vår, som vi nå ønsker å pushe. Vi trykker da på \"push\" knappen. \n", + "\n", + " \n", + "\n", + "Vi kan også løse merge conflicts direkte i GitKraken, \n", + "\n", + "(må demonstrere dette). " + ] + }, { "cell_type": "code", "execution_count": null, - "metadata": { - "hidden": true - }, + "metadata": {}, "outputs": [], "source": [] }