Git / git fetch

git fetch

git fetch нь remote repository-с шинэ мэдээллийг татаж авдаг — гэхдээ таны одоогийн ажлыг өөрчилдөггүй.

git fetch vs git pull — ялгаа

Эхлэгчид энэ хоёрыг ихэвчлэн андуурдаг:

| Команд | Юу хийдэг | | ----------- | ---------------------------------- | | git fetch | Remote-с татаж авна, merge хийхгүй | | git pull | Remote-с татаж аваад, merge хийнэ |

git pull нь үндсэндээ git fetch + git merge хоёрыг нэгтгэсэн команд юм.

git fetch хэрхэн ажилладаг вэ?

bash
git fetch origin

Энэ команд дараах зүйлийг хийнэ:

  1. GitHub (remote) дээр шинэ commit байгаа эсэхийг шалгана
  2. Тэдгээрийг татаж авна
  3. origin/main гэх мэт remote tracking branch-д хадгална
  4. Таны main branch-ийг огт өөрчилдөггүй

FETCH_HEAD

git fetch дуусмагц Git FETCH_HEAD гэсэн тусгай файл үүсгэнэ. Энэ файл сүүлд татаж авсан remote branch-ийн мэдээллийг хадгалдаг.

bash
cat .git/FETCH_HEAD

Remote branch харах

Fetch хийсний дараа remote branch-уудыг харах:

bash
git branch -r

Хариу:

код
origin/main
origin/feature/login
origin/fix/navbar

Бүх branch (local + remote) харах:

bash
git branch -a

Хариу:

код
* main
  remotes/origin/main
  remotes/origin/feature/login

Remote-с юу өөрчлөгдсөнийг харах

Fetch хийсний дараа таны local main болон origin/main хоорондын ялгааг харах:

bash
git fetch origin
git log main..origin/main --oneline

Хэрэв гаралт хоосон бол таны код хамгийн сүүлийн хувилбар юм. Шинэ commit байвал тэдгээрийг харуулна:

код
a3f2c1d feat: нэвтрэх хуудас нэмэх
8b91e4a fix: navbar дээрх алдаа засах

Safe update strategy

git pull нь зарим үед автоматаар merge хийж, conflict үүсгэдэг. Аюулгүй ажиллах арга:

bash
# 1. Эхлээд fetch хийж харна
git fetch origin

# 2. Юу өөрчлөгдснийг шалгана
git log HEAD..origin/main --oneline

# 3. Зөрчил байхгүй гэдэгт итгэлтэй бол merge хийнэ
git merge origin/main

Ингэснээр merge хийхийн өмнө remote дээр яг юу байгааг мэдэж болно.

Тодорхой branch fetch хийх

bash
# Тодорхой branch татах
git fetch origin feature/login

# Бүх remote-с fetch хийх
git fetch --all

Дараагийн хичээлд:

GitHub гэж юу вэ, хэрхэн ашиглах, SSH key тохируулах аргыг үзнэ.