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 хэрхэн ажилладаг вэ?
git fetch origin
Энэ команд дараах зүйлийг хийнэ:
- GitHub (remote) дээр шинэ commit байгаа эсэхийг шалгана
- Тэдгээрийг татаж авна
origin/mainгэх мэт remote tracking branch-д хадгална- Таны
mainbranch-ийг огт өөрчилдөггүй
FETCH_HEAD
git fetch дуусмагц Git FETCH_HEAD гэсэн тусгай файл үүсгэнэ. Энэ файл сүүлд татаж авсан remote branch-ийн мэдээллийг хадгалдаг.
cat .git/FETCH_HEAD
Remote branch харах
Fetch хийсний дараа remote branch-уудыг харах:
git branch -r
Хариу:
origin/main
origin/feature/login
origin/fix/navbar
Бүх branch (local + remote) харах:
git branch -a
Хариу:
* main
remotes/origin/main
remotes/origin/feature/login
Remote-с юу өөрчлөгдсөнийг харах
Fetch хийсний дараа таны local main болон origin/main хоорондын ялгааг харах:
git fetch origin
git log main..origin/main --oneline
Хэрэв гаралт хоосон бол таны код хамгийн сүүлийн хувилбар юм. Шинэ commit байвал тэдгээрийг харуулна:
a3f2c1d feat: нэвтрэх хуудас нэмэх
8b91e4a fix: navbar дээрх алдаа засах
Safe update strategy
git pull нь зарим үед автоматаар merge хийж, conflict үүсгэдэг. Аюулгүй ажиллах арга:
# 1. Эхлээд fetch хийж харна
git fetch origin
# 2. Юу өөрчлөгдснийг шалгана
git log HEAD..origin/main --oneline
# 3. Зөрчил байхгүй гэдэгт итгэлтэй бол merge хийнэ
git merge origin/main
Ингэснээр merge хийхийн өмнө remote дээр яг юу байгааг мэдэж болно.
Тодорхой branch fetch хийх
# Тодорхой branch татах
git fetch origin feature/login
# Бүх remote-с fetch хийх
git fetch --all
Дараагийн хичээлд:
GitHub гэж юу вэ, хэрхэн ашиглах, SSH key тохируулах аргыг үзнэ.