Git Fetch vs Pull: Mikä on ero Git Fetch- ja Git Pull -komentojen välillä?

Git pullja fetchkaksi komentoa, joita Git-käyttäjät käyttävät säännöllisesti. Katsotaanpa ero molempien komentojen välillä.

Kontekstin vuoksi on syytä muistaa, että työskentelemme todennäköisesti kloonirepossa. Mikä on klooni? Se on yksinkertaisesti toisen arkiston kopio. Se on pohjimmiltaan oman kopion saaminen jonkun muun lähdekoodista.

Siitä huolimatta, että pidät kloonisi ajan tasalla mahdollisista muutoksista, joita on mahdollisesti sovellettu alkuperäiseen, sinun on tuotava ne kloonillesi.

Siellä fetchja pulltule sisään.

git fetch on komento, joka käskee paikallista gitiäsi hakemaan uusimmat metadatatiedot alkuperäisestä (mutta ei tee tiedostojen siirtämistä. Se on enemmän kuin vain tarkistaa, onko muutoksia saatavilla).

git pull toisaalta tekee niin JA tuo (kopioi) nämä muutokset etätietovarastosta.

Esimerkiksi:

git pull origin ankur bugfix

Nouto on pitää mielessä, että työasemallasi on yleensä vähintään kolme kopiota projektista.

  • Yksi kopio on oma arkistosi, jolla on oma sitoutumishistoriasi (jo tallennettu, niin sanottu).
  • Toinen kopio on työkopio, jota muokkaat ja rakennat (ei ole vielä sitoutunut repoosi).
  • Kolmas kopio on paikallinen "välimuistissa oleva" kopio etätietovarastosta (luultavasti alkuperäinen, josta kloonasit omasi).

Voit git fetchtietää, mitä muutoksia etärepo / haara on tehnyt edellisen vetosi jälkeen. Tämä on hyödyllistä, jotta voidaan tarkistaa ennen varsinaisen vedon tekemistä, mikä voi muuttaa nykyisen haarasi ja työkopion tiedostoja (ja mahdollisesti menettää muutokset jne.).

git fetch git diff ...origin