Tag Archives: git

Ukens kommando: git clone –depth

I blant så trenger jeg å sjekke ut et repo for å gjøre mindre endringer. Hvis repoet er ganske stort (årlang historikk, utallige bildefiler og gudene vet hva) så vil mesteparten av tiden gå med til å laste ned og kverne all historikken for disse filene. Det er jo strengt tatt overflødig når jeg bare skal fikse en stavefeil, pushe fiksen og så neppe røre repoet igjen. I disse tilfellene er det kjekt å vite at du kan hoppe over mye av historikken når du kloner. F. eks. git clone --depth=10 <reponavn> vil sjekke ut repoet, men tar kun med de 10 nyeste commitene. Ved å justere på --depth-flagget kan du ta med så mye eller lite du ønsker.

Pluss: går raskt og lettvint.
Minus: hvis du skal jobbe med flere eller større endringer eller lete i historikken lønner det seg heller å klone alt. Med mesteparten av historikken kuttet vil verktøy og commit-log anta at prosjektet oppstod i den første commiten du har tilgjengelig, hvilket sannsynligvis er misvisende for hvem som har jobbet på de ulike delene av kodebasen.

Alt i alt kjekt hvis du skal pushe en rask engangs-fiks og ikke har repoet tilgjengelig fra tidligere.

PS. Bazaar har tilsvarende funksjonalitet, bzr branch --stacked <reponavn> som lager en lokal utsjekk med nyeste versjon uten lokal historikk.

Hvordan få fine farger i git

Mange prosjekter bruker git til versjonskontroll, så de fleste utviklere har brukt det på et eller annet tidspunkt. Dessverre (og til min irritasjon) ser det ut som standardinnstillingene til git-klienten bruker samme farge på all utdata. Den har heldigvis innebygget støtte for bruk av flere farger der det er hensiktsmessig, som er noe av det første jeg slår på når jeg setter opp git på et nytt system.

Med farger får vi blant annet tydeligere markering av hvilken gren vi står på, men den viktigste fordelen er at differ (både endringer som ikke er commitet og eldre) blir fargekodet. I eksempelbildet ser vi klart hvilke linjer som er fjernet, lagt til eller forblir uendrete siden de er merket henholdsvis rødt, grønt og hvit (standard). Dette gjør det mye klarere og lettere å få oversikt sammenlignet med å manuelt forsøke å se hva som fjernes eller legges til i et sett med endringer der alle er listet med samme farge .

Eksempel på git med fargerSå som en huskelapp til meg selv og andre, kjør:

git config --global color.ui true

for å  slå på farger i git-klienten. Det er også mulig å spesifisere mer detaljert i hvilke situasjoner du ønsker farger og ikke, se dokumentasjonen for detaljer.