# Git perusteet 101

{% hint style="warning" %}
Komennoissa on virheitä kun ne on siirretty tekstiin. Huomaa, että osa komennoista ei siis kopioimalla toimi. Yksittäisten väliviivojen tilalle voi tulla kaksi väliviivaa tai niiden edestä puuttuu tyhjä välilyönti.

Komennot kannattaa silti vielä kirjoittaa, koska kopioidessa joskus väliviivat eivät kopioidu oikein.
{% endhint %}

**Asenna Git tietokoneellesi**

Asentamisen jälkeen anna komento `git --version` ja ota kuvakaappaus.

#### Konfiguroi Git ensimmäistä käyttökertaa varten <a href="#konfiguroi-git-ensimm-c3-a4ist-c3-a4-k-c3-a4ytt-c3-b6kertaa-varten" id="konfiguroi-git-ensimm-c3-a4ist-c3-a4-k-c3-a4ytt-c3-b6kertaa-varten"></a>

Konfiguroinnin jälkeen anna komento `git config --list` ja ota kuvakaappaus.

#### Luo uusi paikallinentietovarastoja ensimmäisen pysyvän muutoksen tekeminen <a href="#luo-uusi-paikallinentietovarastoja-ensimm-c3-a4isen-pysyv-c3-a4n-muutoksen-tekeminen" id="luo-uusi-paikallinentietovarastoja-ensimm-c3-a4isen-pysyv-c3-a4n-muutoksen-tekeminen"></a>

Tietovaraston luonnin jälkeen lisää muutama tiedosto versionhallinnan jäljitettäväksi ja sen jälkeen tee muutoksista pysyviä. Anna tämän jälkeen komento `git log --stat` ja ota kuvakaappaus.

#### Luo paikallinen tietovarasto olemassa olevasta etätietovarastosta <a href="#luo-paikallinen-tietovarasto-olemassa-olevasta-et-c3-a4tietovarastosta" id="luo-paikallinen-tietovarasto-olemassa-olevasta-et-c3-a4tietovarastosta"></a>

Luo paikallinen kopio seuraavasta julkisesta tietovarastosta: <https://github.com/nyluntu/hacksummit-forecast>

Tämän jälkeen anna komento `git remote –v` ja ota kuvakaappaus.

#### Nykyisten muutosten tarkistaminen ennen pysyvän muutoksen tekemistä <a href="#nykyisten-muutosten-tarkistaminen-ennen-pysyv-c3-a4n-muutoksen-tekemist-c3-a4" id="nykyisten-muutosten-tarkistaminen-ennen-pysyv-c3-a4n-muutoksen-tekemist-c3-a4"></a>

Mieti millä komennolla näet mitkä tiedostot ovat uusia, poistettuja tai lisätty versionhallinnan jäljitettäväksi, joissa on muutoksia. Tämän jälkeen anna kyseinen Git komento ja ota kuvakaappaus. Kuvakaappauksessa tulisi vähintään näkyä uusi lisätty tiedosto ja yksi tulevaan pysyvään muutokseen lisätty muutos tai jäljitettävä tiedosto.

#### Millä komennolla saat lisättyä nykyisestä työkansiosta kaikki muutokset tulevaan pysyvään muutokseen, jos tiedostoja on useampi kuin yksi? <a href="#mill-c3-a4-komennolla-saat-lis-c3-a4tty-c3-a4-nykyisest-c3-a4-ty-c3-b6kansiosta-kaikki-muutokset-tul" id="mill-c3-a4-komennolla-saat-lis-c3-a4tty-c3-a4-nykyisest-c3-a4-ty-c3-b6kansiosta-kaikki-muutokset-tul"></a>

Kerro tähän vaadittavat komennot tai anna muu selitys mitä tulisi tehdä.

#### Mitä `git commit` komento tekee? <a href="#mit-c3-a4-git-commit-komento-tekee" id="mit-c3-a4-git-commit-komento-tekee"></a>

Kerro vapaamuotoisesti mitä commit–komento tekee käytännössä?

#### Miten sivuutan tiedostot, joiden muutoksia en halua jäljitettävän? <a href="#miten-sivuutan-tiedostot-joiden-muutoksia-en-halua-j-c3-a4ljitett-c3-a4v-c3-a4n" id="miten-sivuutan-tiedostot-joiden-muutoksia-en-halua-j-c3-a4ljitett-c3-a4v-c3-a4n"></a>

Kerro miten sivuutus tapahtuu ja miksi käyttäisit tällaista ominaisuutta? Tarvittaessa ota kuvakaappaus perustelun tueksi.

#### Tulevien pysyvien muutosten peruuttaminen <a href="#tulevien-pysyvien-muutosten-peruuttaminen" id="tulevien-pysyvien-muutosten-peruuttaminen"></a>

Millä komennolla voit peruuttaa jo valmistellut tiedostot tulevaan pysyvään muutokseen?

Eli olet esimerkiksi muuttanut tiedostoa tai lisännyt uuden jäljitettäväksi mutta huomaat, ettet haluakaan ottaa uutta tiedostoa mukaan seuraavaan pysyvään muutokseen. Muutos on siis jo tässä kohdin **staged** tilassa.

Miten siis peruuttaisit tulevan muutokset, että saat osan tiedostoista pois **staged** tilasta?

Kerro tarvittavat komennot ja ota myös `git status`–komentoa käyttäen pari kuvakaappausta ennen ja jälkeen tilanteen.

#### Mitä tekee `git mv` –komento? <a href="#mit-c3-a4-tekee-git-mv-e2-80-93komento" id="mit-c3-a4-tekee-git-mv-e2-80-93komento"></a>

Kerro mitä otsikossa mainittu komento tekee ja miksi käyttäisit tai et käyttäisi sitä?

#### Mitä tekee `git rm` –komento? <a href="#mit-c3-a4-tekee-git-rm-e2-80-93komento" id="mit-c3-a4-tekee-git-rm-e2-80-93komento"></a>

Kerro mitä otsikossa mainittu komento tekee ja miksi käyttäisit tai et käyttäisi sitä?

#### Luo oma etätietovarasto ja työnnä sinne muutoksesi <a href="#luo-oma-et-c3-a4tietovarasto-ja-ty-c3-b6nn-c3-a4-sinne-muutoksesi" id="luo-oma-et-c3-a4tietovarasto-ja-ty-c3-b6nn-c3-a4-sinne-muutoksesi"></a>

Voit luoda etätietovaraston haluamaasi palveluun. Kun olet muutokset työntänyt tietovarastoon, ota kuva palvelun Git historia-näkymästä sekä sinun paikallisesta historiasta komennolla `git log -10 --oneline`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.sovelluskontti.com/versionhallinta/git-perusteet-101.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
