> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/fi/tietopankki/040-git-integration.md).

# Git-integraatio

**Overleafin Git-integraatio** on [premium-ominaisuus](/latex/fi/tietopankki/120-overleaf-premium-features.md). Overleafin premium-ominaisuudet ovat käytettävissä osallistujille [Overleaf Commonsissa](https://www.overleaf.com/for/universities), ryhmän [tilausten](https://www.overleaf.com/for/groups), ja yksittäisten [tilausten](https://www.overleaf.com/user/subscription/plans). Git-integraatio on käytettävissä Overleaf Cloudissa ja Overleaf Server Prossa (versio 4.0 ja uudemmat).

### Mikä on Overleafin Git-integraatio?

Overleafin Git-integraation avulla voit saada Git-URL-osoitteen Overleaf-projektistasi ja käsitellä sitä etä-Git-tietovarastona (repo). Voit kloonata projektisi paikalliseen Git-tietovarastoon ja työskennellä projektisi parissa paikallisesti, pushaamalla muutokset projektiisi omalta koneeltasi ja vetämällä Overleafin verkkoeditorissa tapahtuvat päivitykset paikalliseen tietovarastoosi.

Tämän avulla voit työskennellä projektisi parissa paikallisesti silloin, kun verkossa työskentely ei ole mahdollista, käyttää haluamaasi muuta paikallista editoria Overleaf-projektin kanssa työskennellessäsi tai lisätä helposti muiden paikallisten ohjelmistojen tuottamia tiedostoja Overleaf-projektiisi.

Voit saada projektisi Git-URL-osoitteen ja kloonikomennon projektisi Overleaf-valikon Git-vaihtoehdosta.

![Projektivalikko git.png](/files/ec49bc45a060f5ca8d5bb45214915bd5b9a3653f)

### Kuinka tunnistaudutaan Git-integraatiota käytettäessä

Kun suoritat Git-toiminnon, kuten kloonin, vedon tai pushin etä-Overleaf-projektiisi, sinua pyydetään tunnistautumaan.

Päästäksesi Overleaf-projektiisi Gitin kautta sinun täytyy käyttää Overleafin token-pohjaista tunnistautumista. Vaiheittaiset ohjeet löydät kohdasta: [Token-pohjainen tunnistautuminen](/latex/fi/tietopankki/042-git-integration-authentication-tokens.md).

### Projektisi kloonaaminen paikalliseksi tietovarastoksi

Kohdasta [**Valikko**](/latex/fi/tietopankki/148-using-the-overleaf-project-menu.md) projektissasi voit valita Gitin Synkronointi-vaihtoehdoista. Tämä avaa valintaikkunan, jossa näkyy `git clone` komento, jota käytetään paikallista tietovarastoasi luotaessa.

![Projektivalikko git.png](/files/ec49bc45a060f5ca8d5bb45214915bd5b9a3653f)

Vaihtoehtoisesti voit löytää Git-URL-osoitteen projektin URL-osoitteesta (eli selaimen osoiterivillä näkyvästä osoitteesta, kun olet projektissa).

#### Overleaf Cloud

Jos käytät Overleaf Cloudia ja Overleaf-projektisi URL-osoite näyttää tältä:

```
https://www.overleaf.com/project/1234567
```

Silloin projektin kloonaamiseen käytettävä Git-URL-osoite on

```
https://git.overleaf.com/1234567
```

Ja komento, jolla projekti kloonataan paikalliseen Git-tietovarastoon, on:

```
git clone https://git.overleaf.com/1234567
```

**Huomaa**: sinulta saatetaan pyytää käyttäjätunnusta ja salasanaa. Katso [Git-integraation salasanatunnistautuminen](/latex/fi/tietopankki/043-git-integration-password-based-authentication.md)

#### Overleaf Server Pro (versio 4.0 tai uudempi)

**Huomaa**: Git-bridge-integraatio ei ole oletusarvoisesti käytössä Server Prossa. Katso ohjeistamme [Git-integraatio](https://github.com/overleaf/overleaf/wiki/Git-Integration) opas sen käyttöönottoa varten.

Jos käytät Overleaf Server Prota ja projektisi URL-osoite näyttää tältä:

```
https://<SHARELATEX_SITE_URL>/project/1234567
```

Silloin projektin kloonaamiseen käytettävä Git-URL-osoite on:

```
https://git@<SHARELATEX_SITE_URL>/git/1234567
```

Ja komento, jolla projekti kloonataan paikalliseen Git-tietovarastoon Git-komentorivin avulla, on:

```
git clone git@<SHARELATEX_SITE_URL>/git/1234567
```

**Huomaa**: sinulta saatetaan pyytää salasanaa. Katso: [Git-integraation tunnistautumistokenit](/latex/fi/tietopankki/042-git-integration-authentication-tokens.md)

### Overleaf-projektin luominen olemassa olevasta Git-tietovarastosta

Jos sinulla on olemassa oleva tietovarasto, voit lisätä Overleaf-projektin etätietovarastoksi. Alla on muutamia komentoja, jotka sinun täytyy suorittaa päästäksesi alkuun. Huomaa, että Overleaf tukee vain yhtä lineaarista historiaa kutakin projektia kohden. Git-integraatio toteuttaa tämän rajoituksen sallimalla vain yhden haaran. Tämän yhden haaran nimeksi on tällä hetkellä kovakoodattu `master`.

1. Oletetaan ensin, että sinulla on git-tietovarasto tietokoneellasi kansiossa nimeltä `my-paper`. (Se voi olla myös GitHubissa, GitLabissa tai Bitbucketissä jne., mutta sinun täytyy olla kloonannut se myös paikallisesti.)
2. Luo [uusi projekti](/latex/fi/tietopankki/031-creating-a-document-in-overleaf.md) Overleafissa. Koska projektin sisältö korvataan, käytä projektia luodessasi 'Tyhjä'-projektivaihtoehtoa ja poista `main.tex` tiedosto Overleafissa.
3. Etsi projektin Git-URL-osoite (katso [yllä](#cloning-your-project-as-a-local-repository)).

   ![Git-bridge-url.png](/files/fef84b15484f979677cf26ea24f3bf15e7ecde5d)
4. Lisää projektin Git-URL-osoite etätietovarastoksi paikallisessa projektissasi.

   ```
   $ cd my-paper
   $ git remote add overleaf <GIT-URL>
   ```

   (Varmista, että käytät omaa linkkiäsi, et esimerkkilinkkiä.)
5. Vedä viimeisin sisältö Overleaf-projektista ja yhdistä se master-haaraasi.

   ```
   $ git checkout master
   $ git pull overleaf master --allow-unrelated-histories --rebase=false
   ```
6. Pushaa projektisi Overleafiin.

   ```
   $ git push overleaf master --set-upstream
   ```

   Jos haluat käyttää paikallisesti toista haaran nimeä, esim. `my-branch`, voit pushata muutoksesi aliaksella:

   ```
   $ git push overleaf my-branch:master
   ```
7. Käy projektissa Overleafissa. Muutostesi pitäisi näkyä siellä. (Saatat joutua avaamaan Overleaf-projektivalikon selvittääksesi, mikä tiedosto on asetettu pääasiakirjatiedostoksi, ja mahdollisesti muuttamaan tätä alkuperäistä valintaa.)

### Git-commitit ja Overleafin Git-integraatio

Overleafissa on sisäinen [historiajärjestelmä](/latex/fi/lisaa-aiheita/49-using-the-history-feature.md) , joka mahdollistaa samanaikaisen yhteistyön Overleaf-projektissa. Tämä ei ole sama asia kuin Git, joten Overleafin Git-integraatio on pohjimmiltaan käännös Overleafin historia- ja versiointimekanismista Gitiksi. Tämä mahdollistaa monia Git-yhteensopivia käyttötapauksia, mutta ei anna sinun työskennellä Overleafissa ikään kuin se olisi täysi Git-toteutus.

#### Milloin commitit luodaan?

Kun suoritat `pull` tai `fetch` komennon, jos nykyiselle projektitilalle ei ole olemassa commitia, uusi commit luodaan dynaamisesti. Kun sinä `push` aat tiedostoja paikallisesta tietovarastostasi Overleafin etäpalvelimeen, commit luodaan myös silloin, ja se näkyy kaikissa tulevissa klooneissa, jotka teet Overleaf-projektista. Kun sinä tai muut muokkaatte Overleafissa, committeja ei luoda automaattisesti ennen kuin niitä tarvitaan.

#### Committien pakottaminen

Jos haluat pakottaa commitin luotavaksi tietyssä Overleaf-historian kohdassa, voit tehdä sen [merkitsemällä version](/latex/fi/lisaa-aiheita/49-using-the-history-feature.md) Overleaf-historiassa. Merkitty versio saa oman commit-hashinsa, vaikka et tekisi git pullia heti. Commit luodaan merkinnästä vain, jos mitään muita committeja ei ole tehty myöhemmin kuin se Overleaf-historian kohta, jota merkitään.

#### Tekijyyden seuraaminen

Overleafin Git-integraation juuri oikeaan aikaan luotavien commitien vuoksi, jos Overleafin puolella on tehty useita muutoksia ennen commitin luontia, viimeisimmän muutoksen tekijä merkitään commitin tekijäksi.

Kun työskentelet kanssakirjoittajien kanssa, on hyödyllistä luoda merkintä (joka tuottaa commitin) sen jälkeen, kun kukin yhteistyökumppani on saanut merkittävän päivityksen valmiiksi - tämä luo Gitissä näkyvän commit-jatkumon, joka heijastaa mahdollisimman tarkasti Overleafissa tapahtuvia muutoksia.

### Synkronointi toisen etätietovaraston kanssa

Overleafin Git-integraation avulla Overleaf-projektisi voi toimia etätietovarastona paikallisille tietovarastoille. Saatat kuitenkin haluta synkronoida Overleaf-projektisi toisen etätietovaraston kanssa, joka on isännöity GitHubissa, GitLabissa tai jossakin muussa Git-palvelussa.

Jos synkronoit projektisi GitHubissa isännöidyn tietovaraston kanssa (<https://github.com/>), saatat haluta käyttää Overleafin suoraa [GitHub-synkronointia](/latex/fi/tietopankki/044-github-synchronization.md) ominaisuutta.

Jos synkronoit projektisi GitLabin, GitHub Enterprise -ympäristön tai muun isännän kanssa, voit käyttää Overleafin Git-integraatiota välikäisen paikallisen tietovaraston perustamiseen.

Noudattamalla yllä olevia ohjeita [projektisi kloonaamiseen](#cloning-your-project-as-a-local-repository) tai [projektin linkittämiseen olemassa olevaan tietovarastoon](#creating-an-overleaf-project-from-an-existing-git-repository), sinulla on paikallinen tietovarasto, joka voi pushata/vetää muutoksia Overleafista. Voit sitten lisätä tähän tietovarastoon toisen etäosoitteen, joka osoittaa isännöityyn tietovarastoosi. Paikallisessa tietovarastossasi täytyy olla kaksi etäosoitetta, jotta se osoittaa sekä Git-isäntääsi että Overleaf-projektiin.

Vaikka Overleaf-projektin ja Git-tietovarastosi välillä ei ole suoraa yhteyttä, tämä mahdollistaa niiden pitämisen synkronoituna.

![Git other remote.png](/files/03bc477cab0e3a20cfe17e6d944e007e3ae90c70)

### Lisää Overleaf-projekti Git-alimoduulina

Jokainen Overleafin projekti toimii itsenäisenä Git-tietovarastona, mutta jos haluat järjestää useita tällaisia projekteja yhdeksi Git-tietovarastoksi, voit lisätä kunkin projektin tietovaraston Git-alimoduuliksi tavalliseen tapaan. Voit sitten pushata ja vetää kunkin alimoduulitietovaraston Overleafiin/Overleafista erikseen ja silti pitää ne yhdessä alimoduuleina laajemmassa projektissa.

**Huom:** Vaikka Overleaf-projektit voivat olla alimoduuleja toisessa tietovarastossa, Overleaf-projektit itse eivät voi sisältää muita alimoduuleja.

### Tunnetut rajoitukset

**Haarat**: Overleafin Git-järjestelmä ei tue haarautumista.

**Symlinkit**: Overleafin Git-järjestelmä ei käsittele symlinkkejä hyvin. Symlinkin voi pushata Overleaf-projektiin, mutta se muunnetaan tavalliseksi tiedostoksi ja korvaa paikallisen symlinkin seuraavan kerran, kun projekti vedetään.

**Tunnisteet**: Overleafin Git-järjestelmä ei tue tunnisteiden asettamista.

**Tiedosto-oikeudet**: Overleafin Git-järjestelmä ei säilytä suoritusoikeuksia. Tämän kiertämiseksi voit suorittaa `git config core.fileMode false` paikallisessa tietovarastokloonissasi. Sen jälkeen voit palauttaa suoritusoikeudet kaikille vaikutuksen saaneille tiedostoille. Näin niitä ei muuteta uudelleen myöhemmissä Git-toiminnoissa.

**Git LFS:** Overleaf-projektit eivät tue Git Large File Storagea.

**Git-alimoduulit:** Overleaf-projektit voivat toimia Git-alimoduuleina muissa tietovarastoissa, mutta ne eivät voi sisältää muita Git-alimoduuleja. Jos haluat viitata tiedostoihin muista projekteista, on suositeltavaa käyttää [lisää toisesta projektista -ominaisuutta](/latex/fi/tietopankki/009-can-i-share-files-e.g.-.bib-and-some-graphics-across-my-projects.md).

**Kansioiden nimeäminen uudelleen**: Jos käyttäjä nimeää kansion uudelleen ja pushaa muutoksen Overleafiin, projektiin jää uuden kansion lisäksi tyhjä kansio vanhalla nimellä. (Esimerkiksi images/-kansion nimeäminen img/-kansioksi jättää projektiin kaksi kansiota: img/, joka sisältää kuvatiedostot, ja images/, joka on tyhjä. Tämä voi aiheuttaa ongelmia, kun käyttäjä nimeää kansion uudelleen ja luo uuden tiedoston, jolla on sama nimi kuin vanhalla kansiolla, yhdessä commitissa. Overleafin Git-järjestelmä hylkää tämän commitin. Tässä tapauksessa suosittelemme jakamaan commitin kahteen osaan ja poistamaan jäljelle jääneen kansion.

**Tiedostojen nimeäminen uudelleen ja siirtäminen:** Paikallisessa tietovarastossasi tehty tiedoston uudelleennimeäminen muuttuu Overleafin puolella poistoksi ja uudeksi luomiseksi. Tämä voi johtaa Overleafin puolella tiedostoon liittyvien metatietojen menetykseen, mikä aiheuttaa seurattujen muutosten ja kommenttien poistumisen. Ei ole suositeltavaa siirtää tai nimetä uudelleen Gitin puolella tiedostoja, joissa on Overleafin seurattuja muutoksia tai kommentteja.

**Seuratut muutokset ja kommentit**: Valitettavasti Gitistä Overleafiin tehdyt pushit voivat johtaa seurattujen muutosten ja kommenttien katoamiseen tai siirtymiseen; siksi emme suosittele aktiivisen Gitin käytön yhdistämistä seurattujen muutosten ja/tai kommenttien käyttöön.

### Vianmääritys

#### Repository not found -virheet

Jos näet Repository not found -virheen, käytössä on todennäköisesti väärä URL-osoite. Oikean URL-osoitteen löydät napsauttamalla projektin valikossa Git-vaihtoehtoa. Overleaf Cloudissa Git-integraatio on premium-ominaisuus, joten se on käytettävissä vain, jos projektin omistajalla on maksullinen Overleaf-tilaus tai hänelle on myönnetty pääsy ominaisuuteen (esimerkiksi osallistumalla varhaiseen beetatestaukseen).

#### Authentication failed -virheet

Katso vianmääritysohjeet kohdasta [Git-integraation tunnistautumistokenit](/latex/fi/tietopankki/042-git-integration-authentication-tokens.md) tai [Git-integraation salasanatunnistautuminen](/latex/fi/tietopankki/043-git-integration-password-based-authentication.md) riippuen siitä, mitä kirjautumistapaa käytät.

#### Rajoitusrajat

Git Bridgen rajoitus ei yleensä tule vastaan, kun Git-toiminnot suoritetaan manuaalisesti. Joissakin Git-asiakasohjelmissa voidaan määrittää, että ne yrittävät automaattisesti kysellä muutoksia etätietovarastoista, mikä voi joissain tapauksissa johtaa rajoitusvirheisiin. Yleensä automaattisen kyselyn poistaminen käytöstä tai Git-toimintojen tiheyden vähentäminen ratkaisee nämä ongelmat.

#### Viitteiden pushauksen epäonnistuminen

Jokin viitteen pushaamisen epäonnistuminen etäprojektissa voi johtua siitä, että [projektin tiedostokoko- tai tiedostomäärärajoitukset ylittyvät](/latex/fi/tietopankki/119-overleaf-plan-limits.md) tai mukana on ei-tuettuja tiedostotyyppejä (esimerkiksi symlinkkejä tai LFS:ää). Tarkista yllä luetellut tunnetut rajoitukset tunnistaaksesi commitissa mahdollisesti ongelmalliset tiedostot.

Joissakin tapauksissa **postBuffer** -asetuksen kasvattaminen voi korjata paikallisesta tietovarastostasi Overleaf-projektiin pushattavien viitteiden epäonnistumisia.

Ensin voit tarkistaa nykyisen asetuksesi komennolla:

```
     git config http.postBuffer
```

Jos tulostetta ei tule, se tarkoittaa, että käytössä on oletusarvo 1 Mt.

Kokeile seuraavaksi komentoa

```
     git config --global http.postBuffer 10485760
```

joka asettaa arvoksi 10 Mt.

Voit nyt yrittää pushaa commitin (joko alkuperäiseen projektiin tai uuteen). Jos se ei toimi, voit palata edelliseen asetukseesi tai poistaa asetuksen komennolla:

```
     git config --global --unset http.postBuffer
```

#### Aikakatkaisut

Suuren määrän muutoksia sisältävät Git-commitit voivat mahdollisesti johtaa aikakatkaisuihin. Jos kohtaat aikakatkaisun, yritä jakaa commit pienempiin muutoksiin. Jos ongelma jatkuu, harkitse asetuksen **postBuffer** asettamista arvoon 10 Mt kuten edellä on kuvattu.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/fi/tietopankki/040-git-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
