osserpse said:

osserpse

Kankse @plindberg och @svante? Håller på att kika på Git. Kan ni/någon enkelt förklara staging-konceptet?

2 months ago.

3 comments so far

  • plindberg

    @osserpse: Git har något som de kallar ett index dit du lägger till alla filer som du vill checka in tillsammans.

    Med Subversion skulle du behöva göra svn commit file1.txt file2.txt file3.txt om du har ändrat i fler filer än så. Med Git gör du i stället git add file1.txt file2.txt file3.txt och därefter git commit.

    Nu behöver du inte använda dig av den här funktionen. Du kan hoppa över git add och i stället alltid göra git commit -a, så fungerar det exakt som med Subversion. Dvs enda gången du behöver göra git add är när du har en ny fil. Och vid git commit -a checkas alla ändringar in.

    Som ofta med Git är jag inte säker på om indexet är något som finns för att underlätta för användaren eller om det är en konsekvens av hur Git fungerar internt. (-:

    Men jag har vant mig vid denna extra nivå och tycker den är trevlig att ha när jag samlar på mig till en större commit.

    När jag känner mig klar med en fil gillar jag att kunna göra git add på den. Den är inte incheckad i repositoryt, men Git spårar ändå det jag har gjort. Gör jag ytterligare ändringar i filen så kommer den listas som ”untracked” på nytt, men då kan jag om jag vill kasta bort bara de ändringar jag gjort sedan git add. Gör jag en ny git add vid den tidpunkten så spårar Git även dessa ändringar. Varje git add är en punkt jag skulle kunna återgå till, eller jämföra skillnader mellan, utan att ha checkat in i repositoryt.

    Det finns en artikel av Oliver Steele som jag tycker beskriver det här bra.

    2 months ago by plindberg

  • plindberg

    Kan också vara bra att veta att git add -u lägger till alla filer med ändringar som är ”untracked”. Och git add . lägger till alla ändrade filer samt alla nya. Har du massor av ändringar men bara vill lägga till sådana som ligger i en viss mapp räcker det att ange bara mappen, dvs git add folder lägger till såväl folder/file1.txt som folder/folder2/file2.txt (icke ändrade filer berörs inte men har du en ny fil någonstans under folder/ så slinker också den med).

    2 months ago by plindberg

  • osserpse

    @plindberg: Tack så mycket för informationen. Har nu läst Oliver Steele och även http://tomayko.com/writings/the-thing-about-git som han länkade till.

    Jag tror jag nu förstår det lite bättre. Känns väldigt intressant att kunna "spara" delsteg i en process. Anar att detta skulle kunna vara väldigt användbart i CSS-arbete. Typ "FF, Safari, Opera OK", "IE8 OK", "IE6 OK, thanks God"

    2 months ago by osserpse

Sign in to add a comment