Magit kommer til å revolusjonere hvor digg du synes det er å jobbe med git. Ting som interactive rebaser med fixup og squashing og reordering av commits blir helt trivielt.
Magit er en plugin til Emacs. Men du trenger ikke å være Emacs-bruker for å ha glede av magit.
Jeg, for min del, er eks-Emacs-bruker, som er på IntelliJ nå. Men jeg bruker fortsatt Emacs til magit. Fordi livet er ikke det samme uten magit.
¶Guide versjon A: Hvis du allerede bruker Emacs
Steg 1: Installer pakken magit
.
Steg 2: du er ferdig
¶Guide versjon B: Hvis du ikke bruker Emacs
Jeg antar at du enten er vim-bruker og vil holde deg langt unna Emacs, eller at du er IntelliJ-bruker og ikke kan noe om Emacs.
Det er tusen måter å sette opp Emacs på. Noen config-formater er accidentally turing complete, Emacs sitt config-format er det med vilje.
Dersom du er på macOS, kjører du brew install emacs
. Eventuelt kan du laste ned fra emacsformacosx.com. Dersom du er på linux, installerer du Emacs med pakkesystemet ditt. Bruker du f.eks Ubuntu, kan det være lurt å finne en PPA så du får aller nyeste versjon. Dersom du er på Windows, åpner du denne, finner mappa emacs-[høyeste tall her]
, laster ned emacs-XX.X-x86_64.zip
(for du er vel ikke på 32bit, er du vel?), pakker ut, og kjører fila bin\runemacs.exe
.
Et lite triks er at du også kan åpne Emacs i terminal-modus, med emacs -nw
.
Nå skal du gjøre noe som på Emacsks heter C-x C-f ~/.emacs.d/init.el RET
. La meg oversette.
- Hold inne ctrl
- Uten å slippe, trykk på x, og så f
- Slipp ctrl
- Du kan nå skrive inn et filnavn for en fil du vil åpne og redigere
- Fjern alt som står der, med god gammeldags backspace.
- Skriv inn
~/.emacs.d/init.el
(~
referer til “hjemmemappa” til brukeren din, og fungerer også på Windows selv om det er en unix-isme) - Trykk på enter
Gratulerer, du har nå åpnet en fil i editoren/operativsystemet Emacs!
Inne i denne filen, copy/paster du inn følgende. C-y
- altså ctrl+y - er “paste” i Emacs. Ikke spør.
(Hvorfor er crtl+y “paste”, spør du? I Emacs heter det teknisk sett “yank” når du paster, siden Emacs har sin egen måte å gjøre copy/paste på.)
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
Lagre fila med å skrive in C-x C-s
. Altså: hold inne ctrl, trykk så på x, og deretter på s, uten å slippe ctrl.
Restart Emacs. Du lukker Emacs med C-x C-c
.
Vi må si til Emacs at den skal refreshe lista si over tilgjengelige pakker med M-x package-refresh-contents RET
.
- Hold inne alt/option
- Trykk på x
- Skriv inn
package-refresh-contents
(du får litt hjelp av en auto-complete) - Slipp alt/option
- Trykk på enter.
Nå skal du gjøre noe som på Emacsks heter M-x package-install RET magit RET
. Jeg oversetter igjen.
- Hold inne alt/option
- Trykk på x
- Slipp alt/option
- Skriv
package-install
(du får litt hjelp av en auto-complete) - Trykk på enter
- Skriv inn
magit
- Trykk på enter.
Det vil se ut som du får kritiske feilmeldinger. De er bare warnings. La gå.
¶For å starte magit
For å gjøre det som tilsvarer git status
, gjør en M-x magit-status RET
i Emacs. Jeg antar at du nå er i stand til å tolke nøyaktig hva du skal trykke på for å få til M-x magit-status RET
, nå som du har lest teksten over.
Der ber den deg om å vise den en mappe hvor du finner et git-repo. Gjør det, og trykk enter.
A glorious magit appears.
¶Jeg har startet magit - hva nå?
Magit er et selvforklarende GUI, så lenge du leser resten av denne bloggposten.
Du står nå i magit-status. Trykk på spørsmålstegn (shift og + på de fleste norske tastatur), og du får opp et vindu hvor alt du kan gjøre er forklart. Der får du f.eks se under “Applying changes” at du kan trykke på s
for å stage en fil som ligger under “Unstaged”.
Trykk på C-g
for å lukke hjelpevinduet.
Bruk piltastene og naviger til en fil, trykk på “tab” for å se diffen (dersom den er staget).
Refreshe
Trykk g
uten noe mere eller mindre for å refreshe i magit-status. Den driver ikke med noe smart watching eller noe for å få med seg endringer, så bare trykk en gang på g
så får du latest and greatest status fra git/magit.
Lage en commit
Trykk på c
for å lage en ny commit. Et vindu kommer opp hvor du kan sette flagg som --force
. Du kan trykke på a
for å gjøre en “amend” (altså legg til endringene på eksisterende committ). Eller bare trykke på c
igjen for å faktisk gjøre committen.
Da kommer du til et vindu hvor du skriver inn commit-meldingen din. Helt nederst la du kanskje merke til at du kan gjøre C-c C-c
for å utføre committen, eller C-c C-k
for å avbryte. Altså, hold inne control, og trykk på c to ganger for å committe, eller trykk på c og så k for å avbryte.
Når du er tilbake til magit-status
-vinduet, trykker du bare på spørsmålstegn, så får du opp hjelpevinduet. Igjen, C-g
lukker hjelpevinduet.
Pushe
Pushing er P
. Da kommer det opp et nytt vindu hvor du trykker u
for å pushe til default upstream, eller e
for å spesifisere hvor du ønsker å pushe, f.eks til en annen branch eller remote.
WTF?
Trykk på $
for å vise loggen over alle git-kommandoene magit har kjørt.
Denne inkluderer også feilmeldinger. Hvis du f.eks pusher over ssh og ikke har noen ssh-agent satt opp, feiler magit med “Could not read from remote repository”, som man kan se helt i toppen av magit-status. Da er det altså et trykk på $
som tar deg til ytterligere informasjon om akkurat hva som gikk galt.
Tips: for å lukke logg-boksen som kommer opp, trykk C-x 0
.
¶Go forth and git
Sjekk også ut Emacs Rocks sin episode om magit!
Etter noen dager sitter dette i fingrene, og du har blitt en (ma)git Gud som gjør alt som går an å gjøre med git, kjapt, effektivt og intuitivt.
God gitting!