Git for Visual Studio-udviklere
Jesper har forfattet en rigtig god introduktion til Git - med mange gode fifs til nybegynderen.
Jeg kommer fra en del af programmerings-økosystemet, hvor Git ikke traditionelt har haft den store udbredelse - nemlig det økosystem, der arbejder med Microsofts teknologi-stack.
Jeg har arbejdet i det små med Git I nogle få år, og giver hermed mine 2 cents omkring mine erfaringer med brug af Git i "min verden".
Første udfordring: Visual Studio
Som bruger af Visual Studio (og diverse add-ons) er man vant til, at IDE'en (Integrated Development Environment) håndterer en hel masse gymnastik for dig, når du arbejder med kildekoden. Den håndterer opsplitning af filer ved omstrukturering af kildekode (refactoring) så du ikke selv skal tilføje en ny klasse til din "Visual Studio Solution". Hvis du tilføjer en reference til en web service, så hitter Visual Studio selv ud af at tilføje de 1E6 nye filer som den åbenbart skal bruge for at kunne lave et simpelt SOAP-request imod en WS*-service etc.
Git er jo totalt afkoblet fra IDE'en (hvis man bruger Command-line interfacet) så den ved ikke noget om hvordan Visual Studio håndterer disse ting. Den kan bare se, at der er 1E6 nye filer i ens lokale repository.
Jesper nævner kommandoen
>git add 'fil navn'
Men med så mange nye filer, så bliver dette nemt træls i længden. Brug i stedet denne kommando:
>git add -A
Den kigger i hele dit lokale source tree og tilføjer alle nye filer og registrerer ændringer til eksisterende filer.
Anden udfordring: Visual Studio
De fleste af os Visual Studio-udviklere har nok prøvet at kigge på, hvad der i grunden findes af filer og foldere i sådan en Visual Studio Solution. Konklusionen er normalt: alt muligt skrammel, der intet har med kildekoden at gøre. Der findes bla. /bin-mapper og /obj-mapper med kompilerede udgaver af det program man laver. Disse skulle helst ikke med op i dit centrale git repository. Der er også brugerens egne indstillinger I de mystiske *.csproj.user-filer og *.suo-filer og migrerer du kode fra et Team Foundation Server repository, så er der også en masse *.vspscc-filer og *.vssscc-filer. Disse skulle helst heller ikke i det centrale repository.
Til alt held bruger git en ".gitignore"-fil, der styrer, hvilke filer, der skal committes. Og til alt held har de flinke folk hos github lavet sådan en fil til netop Visual Studio-brugere . Den kan hentes fra https://raw.githubusercontent.com/github/gitignore/master/VisualStudio.gitignore og min anbefaling er, at denne fil er den første man laver, når man starter et nyt repository til brug for git. Resultatet af denne fil er, at kun de "rigtige" filer i din Visual Studio Solution kommer med i dit repository.
Tredje udfordring: Visual Studio
Visual Studio har traditionelt set ikke haft god understøttelse af git - men programmet er efterhånden kommet efter det.
Hvis du åbner en Visual Studio Solution i et git repository, så vil du se billedet til venstre. Hvis du åbner en Visual Studio Solution fra "TFS", så ser du billedet til højre. Det er der ingen ben i :-) .
Hvis man bruger "username/password" autentificering imod git, så kan du lave stort set det meste i Visual Studio IDE. Men hvis du er som nogle af os - og bruger SSH-nøgler som identifikation, så må du gå en anden vej end brugerfladen i Visual Studio.
Jesper nævner selv "git bash" og jeg må indrømme, at jeg har haft meget blandede oplevelser med netop dette program.
Men i Windows 10 har vi nu fået mulighed for "Ubuntu user mode" - eller som Microsoft kalder det: "Windows 10 subsystem for Linux (WSL)". Hermed har du mulighed for alle de smarte ting i Linux-cmd-verdenen, som OSS-udviklerne har drillet os med i årevis - herunder indbygget support for git. Den skal blot hentes via en apt-get kommando.
Jeg vil ikke beskrive setup af WSL her - blot konstatere, at jeg aldrig har kigget på Git Bash for Windows siden … og aldrig savnet den.
Note: Skulle du have din kildekode liggende på Visual Studio Team Services (VSTS) og bruger git deroppe, så understøtter VSTS nu brug af SSH-nøgler. Visual Studio understøtter det som sagt ikke selv … men mon ikke at det kommer.
Jeg er personligt blevet helt vildt tosset med git. Den giver mig en følelse af kontrol som jeg faktisk ikke rigtigt har ved brug af Visual Studio og som Jesper nævner, så kan du faktisk klare dig med en håndfuld kommandoer i git for at være kørende.
Det er bare med at komme i gang!

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.