Git / Branch үүсгэх, шилжих, устгах

Branch үүсгэх, шилжих, устгах

Branch-ийн онолыг мэдсэн. Одоо практикт ашиглах командуудыг үзнэ — үүсгэх, шилжих, нэгтгэх, устгах.

git branch <name> — шинэ branch үүсгэх

bash
git branch feature/login

feature/login нэртэй шинэ branch үүснэ. Гэхдээ тэр branch руу шилжихгүйHEAD одоогийн branch дээрээ хэвээр байна.

Бүх branch харах:

bash
git branch
код
  feature/login
* main

git switch — branch шилжих (шинэ арга)

bash
git switch feature/login
код
Switched to branch 'feature/login'

Git 2.23 хувилбараас git switch нэмэгдсэн — git checkout-ийн зөвхөн branch шилжих үүргийг гүйцэтгэх, илүү тодорхой команд.

Шилжиж ирэхэд HEAD тэр branch руу шилжинэ. Одоо хийх commit бүр feature/login-д л нэмэгдэнэ.

Шинэ branch үүсгэж нэн даруй шилжих:

bash
git switch -c feature/profile

-c тугийн утга — "create".

git checkout — branch шилжих (хуучин арга)

git switch гарч ирэхээс өмнө branch шилжихэд git checkout ашигладаг байсан. Одоо ч ажилладаг тул бусдын кодонд харагдана:

bash
git checkout feature/login

Шинэ branch үүсгэж шилжих:

bash
git checkout -b feature/login

git switch -c болон git checkout -b яг адил үр дүнтэй. Шинэ кодод git switch ашиглахыг зөвлөдөг — илүү ойлгомжтой.

Практик жишээ: шинэ боломж хөгжүүлэх

bash
# 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-ийг цэвэрлэнэ:

bash
git branch -d feature/login

Git энэ branch merge хийгдсэн эсэхийг шалгана. Merge хийгдээгүй бол анхааруулга гаргана:

код
error: The branch 'feature/login' is not fully merged.

git branch -D — хүчээр устгах

Merge хийгдээгүй ч болов устгахыг хүсвэл том -D ашиглана:

bash
git branch -D feature/туршилт

Устгасан branch-ийг сэргээх боломжгүй тул болгоомжтой ашиглах. (Техникийн хувьд git reflog-оор сэргээж болох ч энгийн хэрэглэгчид тийм биш.)

Branch-уудыг харах — нэмэлт

Хамгийн сүүлийн commit мессежийн хамт харах:

bash
git branch -v
код
  feature/login   3f2a1bc feat(auth): нэвтрэх форм нэмэх
* main             a1b2c3d chore: readme шинэчлэх

Merge хийгдсэн branch-уудыг харах (устгахад аюулгүй):

bash
git branch --merged

Merge хийгдээгүй branch-уудыг харах:

bash
git branch --no-merged

Remote branch устгах

GitHub дээрх branch-ийг устгах:

bash
git push origin --delete feature/login

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

Branch-уудыг git merge ашиглан нэгтгэх арга, fast-forward болон 3-way merge-ийн ялгааг судална.