# Gitin käytöstä, branchit ## Workflow ### 0. Status git status -komennolla näet minkä branchin kanssa työskentelet ja sen tilan. Kuvan tapauksessa on käytössä master-branch. ![](https://i.imgur.com/PqMiX6D.png) ### 1. Pull Haetaan master branchin uusin versio ``` git checkout master git pull ``` Näin varmistetaan että omalla koneella on aina viimeisin versio sovelluksesta ennen oman työn aloittamista. ![](https://i.imgur.com/2TNJM2L.png) ### 2. Checkout Muutoksien tekeminen suoraan master branchiin ei ole ideaalia, jos (kun) koodareita on useita. Tämä johtaa helposti moniin ongelmiin. Vaan parempi tapa on se, että jokaista uutta ominaisuutta varten tehdään oma branch. Eli, kun aloitat työskentelyn, ***varmista että aktiivinen branch ei ole master branch***. Vaihda omaan branchiisi: ``` git checkout OMA_BRANCH ``` Jos et vielä ole luonut omaa branchia, luodaan se ja checkoutataan siihen komennolla: ``` git checkout -b OMA_BRANCH ``` ### 3. Muutoksien tekeminen Nyt voi koodata :) ### 4. Staging Kaikki uudet ja muutetut tiedostot siirretään staging-tilaan komennolla ``` git add . ``` Pisteen sijasta voit myös määritellä tiedostojen nimet, mutta tavallisesti halutaan kaikki tiedostot mukaan. ``` git add TIEDOSTON_NIMI ``` ### 5. Commit Tehdyt muutokset commitoidaan: ``` git commit -m "TÄHÄN COMMIT VIESTI" ``` ### 6. Push Commitoinnin jälkeen voit viedä (pushata) branchisi myös versionhallintaan. Tämä ei ole pakollista mutta suositeltua. ``` git push ``` Jos branch pushataan ensimmäistä kertaa niin tulostuu virheilmoitus, joka vinkkaa käyttämään komentoa: ``` git push --set-upstream origin BRANCHIN_NIMI ``` Kuvan esimerkissä tein testibranch -nimisen branchin, addasin, commitoin ja pushasin GitLabiin. ![](https://i.imgur.com/js8NrKl.png) ## 7. Merge Kun työskentelet oman branchisi parissa ja master branchiin tulee päivitys, jonka muutokset haluat liittää myös omaan branchiisi: Haetaan master branchin uusin versio ``` git checkout master git pull ``` Tämän jälkeen voit yhdistää, eli mergettää master branchin muutokset omaan branchiisi Vaihda omaan branchiisi ``` git checkout OMA_BRANCH ``` Yhdistä master branch omaan branchiisi ``` git merge master ``` Jos git ilmoittaa merge conflikteista, olet tällöin tehnyt muutoksia samoihin tiedostoihin joita oli muokattu myös master branchissa. Tässä tapauksessa selvitä confliktit Visual Studio Codessa. ## HUOM: package.json ja npm install Kun package.json -tiedoston sisältö muuttuu (uusia kirjastoja lisätään projektiin tai vanhoja päivitetään), niin silloin täytyy ajaa komento ``` npm install ``` joka lataa ja asentaa/päivittää kaikki projektin tarvitsemat tiedostot node_modules -kansioon.