Branch үүсгэх, шилжих, устгах
Branch-ийн онолыг мэдсэн. Одоо практикт ашиглах командуудыг үзнэ — үүсгэх, шилжих, нэгтгэх, устгах.
git branch <name> — шинэ branch үүсгэх
git branch feature/login
feature/login нэртэй шинэ branch үүснэ. Гэхдээ тэр branch руу шилжихгүй — HEAD одоогийн branch дээрээ хэвээр байна.
Бүх branch харах:
git branch
feature/login
* main
git switch — branch шилжих (шинэ арга)
git switch feature/login
Switched to branch 'feature/login'
Git 2.23 хувилбараас git switch нэмэгдсэн — git checkout-ийн зөвхөн branch шилжих үүргийг гүйцэтгэх, илүү тодорхой команд.
Шилжиж ирэхэд HEAD тэр branch руу шилжинэ. Одоо хийх commit бүр feature/login-д л нэмэгдэнэ.
Шинэ branch үүсгэж нэн даруй шилжих:
git switch -c feature/profile
-c тугийн утга — "create".
git checkout — branch шилжих (хуучин арга)
git switch гарч ирэхээс өмнө branch шилжихэд git checkout ашигладаг байсан. Одоо ч ажилладаг тул бусдын кодонд харагдана:
git checkout feature/login
Шинэ branch үүсгэж шилжих:
git checkout -b feature/login
git switch -c болон git checkout -b яг адил үр дүнтэй. Шинэ кодод git switch ашиглахыг зөвлөдөг — илүү ойлгомжтой.
Практик жишээ: шинэ боломж хөгжүүлэх
# main branch дээрээс шинэ branch эхлүүлэх
git switch main
git switch -c feature/нэвтрэлт
# Код бичих, commit хийх
# ... код бичнэ ...
git add .
git commit -m "feat(auth): нэвтрэх форм нэмэх"
# Дахин commit
# ... код бичнэ ...
git add .
git commit -m "feat(auth): Supabase нэвтрэлт холбох"
# Бэлэн болсны дараа main руу буцах
git switch main
main руу шилжихэд feature/нэвтрэлт-д хийсэн өөрчлөлтүүд харагдахаа болино — файлууд main-ийн сүүлийн байдалд буцна. Санаа зоволтгүй, кодын алдаа болоогүй, зөвхөн өөр branch дээр байгаа.
git branch -d — branch устгах
Merge хийсний дараа branch-ийг цэвэрлэнэ:
git branch -d feature/login
Git энэ branch merge хийгдсэн эсэхийг шалгана. Merge хийгдээгүй бол анхааруулга гаргана:
error: The branch 'feature/login' is not fully merged.
git branch -D — хүчээр устгах
Merge хийгдээгүй ч болов устгахыг хүсвэл том -D ашиглана:
git branch -D feature/туршилт
Устгасан branch-ийг сэргээх боломжгүй тул болгоомжтой ашиглах. (Техникийн хувьд git reflog-оор сэргээж болох ч энгийн хэрэглэгчид тийм биш.)
Branch-уудыг харах — нэмэлт
Хамгийн сүүлийн commit мессежийн хамт харах:
git branch -v
feature/login 3f2a1bc feat(auth): нэвтрэх форм нэмэх
* main a1b2c3d chore: readme шинэчлэх
Merge хийгдсэн branch-уудыг харах (устгахад аюулгүй):
git branch --merged
Merge хийгдээгүй branch-уудыг харах:
git branch --no-merged
Remote branch устгах
GitHub дээрх branch-ийг устгах:
git push origin --delete feature/login
Дараагийн хичээлд:
Branch-уудыг git merge ашиглан нэгтгэх арга, fast-forward болон 3-way merge-ийн ялгааг судална.