Hopp til hovedinnhold

Jeg har knota med git i 12 år. Dette er mine git aliaser, og hvorfor du trenger dem.

Et skjermbilde av en git GUI klient

Om du bruker en GUI-klient for Git, så er nok ikke denne artikkelen for deg. Men om du tviholder deg til terminalen, kan det hende du lærer noen triks!

Git er vanskelig. Det har alltid vært det, og kommer alltid til å være det. Men etterhvert lærer man seg liksom nok til å få en slags rytme.

Jeg har jobbet med git i terminalen i rundt 12 år, og har gjort omtrent alle feilene i boken. For å si det sånn, så har jeg mer enn en gang slettet koden min, laget en ny branch og bare reimplementert det jeg hadde, bare for å slippe å rebase.

Men over årene har jeg lært meg noen triks, som jeg tenkte kunne være verdt å dele i julekalenderen vår i år.

Skriv litt mindre

Denne seksjonen er egentlig for deg som er fresh ut av skolen. Om du skal jobbe med git i terminalen din, så er det greit å ikke pådra seg podagra av alle kommandoene du ender opp med å skrive.

Git er heldigvis ganske fleksi på disse kommandoene. Du kan nemlig gjøre mye med å lage deg en .gitconfig fil i hjemmeområdet ditt, og legge til noen snarveier (eller aliaser, som git kaller det)

På samme tid, så er det ikke bare-bare å laste ned en .gitconfig fra internettet og pugge alle kodene. Det er ofte altfor mange, ofte unødvendige snarveier, som gjør at man ender opp med å ikke huske noen av dem. De jeg har er det jeg bruker i hverdagen:

[alias]
  co = checkout
  br = branch
  cm = commit
  st = status

Det vil si – jeg skriver ikke git status, jeg skriver git st. Det sparer deg nok ikke for mange sekundene, men det gir deg en slags rytme i terminaltastingen din som gjør hverdagen din mye bedre.

Noen smarte snarveier

Men man trenger jo mer enn det der. For noen ganger (ganske ofte) så ender man opp med å sitte og huske på forskjellige git-besvergelser for å løse opp i ett eller annet. Derfor har jeg laget meg noen flere snarveier, som er ett eller et par hakk mer avanserte – men fortsatt like nyttige.

Det viktigste for meg er å gjøre dem litt enkle å huske. Derfor har jeg ofte gått for ord- eller bokstavspill som gjør dem enklere å memorisere!

diffs = diff --staged

Jeg prøver å lage gode commits. Jeg gjør virkelig det. Og av og til lurer på hva jeg egentlig har skrevet "git add" på, og hva som ikke blir med i en commit. Da er det fint å ha git diffs. Den lar meg nemlig se hva som blir med i commiten – rett og slett det motsatte av git diff (det som ikke blir med i commiten).

cob = checkout -b

Skal du lage ny branch? git cob branchnavn. Boom. Det sparer deg for hele to tastetrykk i forhold til git co -b, men det gjør det hele også litt mer rytmisk. Noen sjekker ut nye brancher, jeg danser over tastaturet. Og det kan du også gjøre nå.

cman = commit --amend --no-edit

Har du noensinne laget en commit, oppdaget en skrivefeil eller en console.log, og ønsket at ingen noensinne fant ut av det? Du mente det jo tross alt ikke.

git cman (eller som jeg sier inne i hodet mitt, "git come on") er en nydelig liten kommando. Den lar deg velge hva du skal legge til sist commit, endrer den, og ber deg ikke endre commitmeldingen (som du sikkert står inne for). Come on, liksom.

Jeg bruker denne kommandoen oftere enn jeg tør å innrømme.

fush = push --force

Etter du committa den teite buggen din som du ikke ville at noen skulle vite om, så pusha du selvfølgelig. Så for å få med den endrede commiten din du akkurat endra med git cman, så må du force pushe. Men å skrive git push --force er litt for Star Wars for meg.

Istedenfor ler jeg alltid litt for meg selv når jeg skriver git fush. Hvem sa man ikke kunne endre historien, og ha det litt moro mens man gjorde det?

rull = pull --rebase

Glemte du å pulle noen endringer fra en branch før du committa din egen branch? Er du keen på at ingen fant ut av det? Da kan du kjøre git rull. Den lar deg kjøre git pull uten å få en sånn kjip merge commit, som lar alle i verden vite at du dummet deg ut.

Istedenfor er det bare å kjøre på med den mye morsommere git rull, som henter commitene fra originen din, og rebaser dine commits på toppen av dem. Basically, den lar deg late som ingenting endret.

And for my final act

Jepp, dette er nok den artikkelen du får mest ut av i år som utvikler. Men ingenting har spart meg like mye tid som neste triks.

For hvis du er som meg, så har du dårlig tid når du skriver. Og av og til skriver du feil. Jeg, for eksempel, skriver gti istedenfor git omtrentlig 12 ganger om dagen.

Men du er jo programmerer! Du spiser sånne problemer til frokost.

Så istedenfor å banne over dine egne feil, la dataen fikse det ved å legge til et alias i ~/.bash_profile filen din (.zshrc er kanskje vanligere i dag).

alias gti="git"

Jeg tror personlig at om alle utviklere i Norge hadde lagt til denne i bash-profilen sin, så hadde dette tipset spart samfunnet for millioner av kroner i økt produktivitet.

Jeg håper du fikk med deg et triks eller to, som gjør at hverdagen din blir et par hakk enklere å forholde deg til. Takk for at du leste helt ned hit!

Liker du innlegget?

Del gjerne med kollegaer og venner