Ut SVN in med GIT

Jonas Arnklint, juni 26, 2008

SVN

Jag har tidigare använt SVN till alla mina interna och några externa projekt. SVN hjälpte mig att hålla koll på ändringar och spara gamla versioner av den kod jag skrivit. Jag kan alltså gå tillbaka i tiden och aktivera en gammal version, såväl som att bygga “förgreningar” till ett projekt och sedan samanfoga det med den ursprungliga koden. SVN är alltså ett versionshanteringssystem (phew, långt ord). SVN ihop med Capistrano gör det dessutom busenkelt att lägga upp filer och deploya projekt. Nog om SVN, den gamle trotjänaren.

GIT

Jag tänkte nu gå över helt och hållet till GIT. En av anledningarna är att Ruby on Rails och andra projekt i Railsvärlden nu migreras till GIT och GitHUB. En annan god anledning är att GIT är bättre, snabbare och enklare att hantera.

GIT är:

  • Öppen källkod
  • Skapat av Linus Thorvalds
  • Distribuerad versionshantering
    • Arkiv kan kommas åt via HTTP, SSH, FTP och nsync
    • Alla användare har varsin lokal kopia av ett arkiv vilket gör
      • Snabb åtkomst
      • Offline som online
  • Byggt med snabbhet som mål
  • Kapabelt att hantera stora projekt effektivt
  • Smart och sparar endast en enda .git fil i roten på ditt arkiv

Nu kör vi igång

Börja med att ignorera filer du inte vill ska hamna i ditt arkiv genom att skapa filen .gitignore och ange exempelvis .DS_Store i den (ja, jag arbetar med Mac).

Skapa ett “arkiv”:

$ cd work/gittest/
$ git init
Initialized empty Git repository in .git/
$ git add .
$ git commit -m "Skapade ett repository

Du lägger till filer likt SVN:

$ git add fil1 fil2

Innan vi utför en commit, så kan vi se vad som kommer att läggas in i arkivet genom:

git diff --cached

För att utföra en commit utan att behöva lägga till alla filer använder du:

git commit -a

Bra läsning:

http://www.kernel.org/pub/software/scm/git/docs/repository-layout.html

http://groups.google.com/group/peepcode/browse_thread/thread/fe6f9c1fc9d6e725 – Ingorera .DS-store globalt. (Användbart för macanvändare!

Följ mig på twitter!

Mer om mig
  1. Stark Signal » Note to self: Git Push - Stark Signal

    [...] Mer om Git.Andra bloggar om: git, push [...]

  2. mptre

    Tjena!
    Tack för en bra introduktion. Hade i åtanke att själv börja använda mig av svn men sedan läste jag på om Git på din blogg och blev övertygad. Fortsätt gärna med fler Git tips och tutorials.

    Är bara lite nyfiken och undrar om du har några egna offentliga projekt uppe på GitHub?

    Btw, släng in den här länken som förklarar hur man fixar en global ignore på .DS_Store-filer.

    http://groups.google.com/group/peepcode/browse_thread/thread/fe6f9c1fc9d6e725

  3. Jonas Arnklint

    Hej,
    glad att du gillade det jag skrivit om Git.
    Jag har tyvärr inga publika projekt på GitHub, men det är inte helt omöjligt att det kommer… Håll utkik här, jag lär posta när det händer något.

Vad tycker du?

Kommentarsmöjligheten stängd för detta inlägg.