Differences between revisions 11 and 12
Revision 11 as of 2022-09-13 20:40:36
Size: 2846
Comment:
Revision 12 as of 2022-09-20 21:09:50
Size: 5963
Editor: Malinux
Comment:
Deletions are marked like this. Additions are marked like this.
Line 79: Line 79:

= Detaljert utføring i git =

== Fjerne lokale commits ==
* Denne kan finskrives etterhvert

hvordan bruker jeg git i følgende scenario. 1. jeg har gjort noen endringer lokalt, men vil ikke pushe dem oppstrøms, og jeg vil
derfor heller hente ned siste versjon av oppstrøms ned til lokalt og skrote endringene jeg gjorde lokalt
når jeg kjører git pull, så har jeg 3 forslag til hva jeg kan gjøre, og ingen av dem er intutive for meg.
1) git config påull.rebase false # merge
2) git config pull.rebase true # rebase
3) git config pull.ff only # fast-forward only
Malinux: har du gjort commit? viss ikkje, er `git stash` enklast
om du vil fjerne dine commits, kan du gjere `git reset --hard origin/master` (juster evt. remote-namn og branch-namn)
jeg gjorde en commit i går, så da antar jeg at ja, jeg har gjort en commit
er origin remte-namn og master branch-namn?
ja
du kan evt. ta vare på endringane dine ved git checkout -b noko-junk
takk, ah, ser at det kan autocompletes :) det gjør det jo enklere
kjetilho: aha
og så tilbake til git checkout master
og reset i master
mhm, tror ikke jeg trenger det jeg gjorde, for pere har lagt ut noe med mer relevant og utfyllende enn jeg tenkte å få ut, bare
for å få noe ut
men kan jo prøve å ta vare på for å teste det
Malinux: hvis det er en innsjekk du vil ha bort, så kan du bruke 'git reset HEAD^; git checkout .'. 'reset HEAD^' betyr hopp
tilbake en innsjekking, og 'checkout .' ber git om å droppe alle lokale endringer (litt ala git stash, bare uten å ta vare på
endringene).
pere: oki, dette må jeg notere

Kort innføring i Git

Vi har en gitlab-server kjørende på git.nuug.no, hvor NUUGs hjemmeside og kalender ligger.
Derfor trenger du ikke lenger geekbay-konto for å endre nettsiden, du trenger en konto på gitlabben vår.

Noen av brukerne som hittil har brukt CVS til å oppdatere nuug.no ønsket en guide i bruk av Git, så her er et forsøk.
De fleste av CVS-kommandoene finnes også i Git, man bytter bare ut cvs med git. Men det er noen forskjeller.
Git kan legge til hele mapper i en jafs, mens CVS måtte legge til mapper separat for deretter å legge til filene inni.

Merk: For å kunne bruke gitlab-en vår må du ha bruker på git.nuug.no, og du bruke ssh og ssh-nøkler.

Eksempelvis kan denne:

cvs add mappe/
cd mappe
cvs add fil-1 fil2

… byttes ut med dette:

git add mappe

Oppdatering av repo er også litt annerledes med Git.
Med CVS kjøres en av disse variantene for å sjekke repoet for nye endringer.

cvs update -d
cvs -q update -d

I Git er det mindre å skrive.

git pull

Utsjekking av repo

Utsjekking av git-repo er litt annerledes enn med CVS. Eksempelvis, for å sjekke ut NUUGs web-mappe brukes følgende kommando,
dette trenger du kun å gjøre én gang.

git clone git@git.nuug.no:nuug/nuug-web.git

Da ble git-repoet klonet til din lokale maskin og mappen heter nuug-web
Vil du velge det lokale mappenavnet selv – for eksempel min-nuug-mappe – gjøres det på følgende måte.

git clone git@git.nuug.no:nuug/nuug-web.git min-nuug-mappe

Da havner git-repoet inni min-nuug-mappe i stedet for nuug-web.
Det er ikke viktig hva mappen heter, det viktige er at du vet hvor det er.

Enkel innføring i git-kommandoer

Når du har gjort endringer du vil sjekke inn kan du bruke  git status  for å se hvilke filer som er endret.
Skal du sjekke inn alle filer og mapper som har endringer kjører du følgende.

git add . 

Kjør gjerne «git status» før du committer for å kontrollere at du ikke sjekker inn flere filer/mapper enn du hadde tenkt.
Vil du derimot heller sjekke inn én og én fil/mappe gjøres det ved å definere filen eller mappen i stedet for punktumet.

git add fil
git add mappe/

Når du er klar til å committe kjører du:

git commit -m "commit-melding"

Nå er endringene lagret i ditt lokale repo, men det er enda ikke sendt inn til NUUGs sentrale gitlab.
Det gjøres slik:

git pull (for å sikre at ingen andre har sendt inn endringer i mellomtiden)
git push

Etter maks 5 minutter vil endringene som er push'et dukke opp på nuug.no.
(Eller kjør sudo push-web og eventuelt sudo-push-adict på geekbay .)

Detaljert utføring i git

Fjerne lokale commits

* Denne kan finskrives etterhvert

hvordan bruker jeg git i følgende scenario. 1. jeg har gjort noen endringer lokalt, men vil ikke pushe dem oppstrøms, og jeg vil derfor heller hente ned siste versjon av oppstrøms ned til lokalt og skrote endringene jeg gjorde lokalt når jeg kjører git pull, så har jeg 3 forslag til hva jeg kan gjøre, og ingen av dem er intutive for meg. 1) git config påull.rebase false # merge 2) git config pull.rebase true # rebase 3) git config pull.ff only # fast-forward only Malinux: har du gjort commit? viss ikkje, er git stash enklast om du vil fjerne dine commits, kan du gjere git reset --hard origin/master (juster evt. remote-namn og branch-namn) jeg gjorde en commit i går, så da antar jeg at ja, jeg har gjort en commit er origin remte-namn og master branch-namn? ja du kan evt. ta vare på endringane dine ved git checkout -b noko-junk takk, ah, ser at det kan autocompletes :) det gjør det jo enklere kjetilho: aha og så tilbake til git checkout master og reset i master mhm, tror ikke jeg trenger det jeg gjorde, for pere har lagt ut noe med mer relevant og utfyllende enn jeg tenkte å få ut, bare for å få noe ut men kan jo prøve å ta vare på for å teste det Malinux: hvis det er en innsjekk du vil ha bort, så kan du bruke 'git reset HEAD; git checkout .'. 'reset HEAD' betyr hopp tilbake en innsjekking, og 'checkout .' ber git om å droppe alle lokale endringer (litt ala git stash, bare uten å ta vare på endringene). pere: oki, dette må jeg notere

grupper/sysadmin/tips/git (last edited 2023-02-24 23:11:13 by ThomasGramstad)