Git Fetch vs Pull: Aký je rozdiel medzi príkazmi Git Fetch a Git Pull?

Git pulla fetchsú dva príkazy, ktoré používatelia Gitu pravidelne používajú. Pozrime sa, aký je rozdiel medzi oboma príkazmi.

Z dôvodu kontextu stojí za to pripomenúť, že pravdepodobne pracujeme v klonovom repo. Čo je to klon? Je to jednoducho duplikát iného úložiska. V zásade ide o získanie vlastnej kópie zdrojového kódu niekoho iného.

To znamená, že aby bol váš klon neustále aktualizovaný bez ohľadu na to, aké zmeny sa mohli uplatniť v origináli, budete ich musieť do svojho klonu preniesť.

To je kde fetcha pullvstúpte.

git fetch je príkaz, ktorý hovorí vášmu miestnemu gitu, aby načítal najnovšie informácie o metaúdajoch z originálu (zatiaľ neprenáša žiadne súbory. Je to skôr ako len skontrolovať, či nie sú k dispozícii nejaké zmeny).

git pull na druhej strane to však AND prináša (kopíruje) tieto zmeny zo vzdialeného úložiska.

Napríklad:

git pull origin ankur bugfix

Je potrebné mať na pamäti, že na vašej pracovnej stanici sú spravidla minimálne tri kópie projektu.

  • Jedna kópia je vaše vlastné úložisko s vlastnou históriou odovzdaní (takpovediac už uložená).
  • Druhá kópia je vaša pracovná kópia, ktorú upravujete a staviate (zatiaľ nie ste viazaní repo).
  • Tretia kópia je vaša lokálna „medzipamäť“ kópia vzdialeného úložiska (pravdepodobne originál, z ktorého ste klonovali vy).

Môžete git fetchpoznať zmeny vykonané vo vzdialenom repo / pobočke od vášho posledného stiahnutia. Toto je užitočné na umožnenie kontroly pred vykonaním skutočného načítania, ktoré by mohlo zmeniť súbory vo vašej aktuálnej vetve a pracovnej kópii (a potenciálne stratiť vaše zmeny atď.).

git fetch git diff ...origin