CodeReady
Quay lại kiến thức

Ban biên tập CodeReady

Tong quan ve Git: Nen tang kiem soat ma nguon cho lap trinh vien chuyen nghiep

Tim hieu ve ban chat, kien truc va cac quy trinh thuc te cua Git giup lap trinh vien quan ly ma nguon hieu qua va hop thuc hoa lam viec nhom.

Trong nganh phat trien phan mem hien dai, Git da tro thanh cong cu khong the thieu doi voi bat ky lap trinh vien nao. Khong chi don thuan la mot phan mem luu tru lich su ma nguon, Git la nen tang co ban quyet dinh toc do, kha nang mo rong va tinh an toan cua quy trinh phat trien san pham.

Ban chat va Kien truc cua Git

Git la mot He thong quan ly phan phien ban phan phien (Distributed Version Control System - DVCS). Diem khac biet cot lõi cua Git so voi cac he thong tap trung cu (nhu SVN) nam o o cung luu truc:

  • Kho luu tru cuc bo (Local Repository): Moi ban sao Git tren may ca nhan la mot kho luu tru hoan chinh voi day du lich su thay doi. Dieu nay cho phép lap trinh vien lam viec ngoai tuyen (offline) va thuc hien hau het thao tac ma khong can ket noi mang.
  • Cac vung luu tru (Areas): Git phan tach ro rang giua Working Directory (vung lam viec), Staging Area (vung cho) va Repository (kho luu tru). Su phan tach nay giup lap trinh vien chu dong kiem soat tung dong ma truoc khi cam ket vao lich su chinh.

Cac lenh Git co ban va quy trinh lam viec thuc te

De su dung Git hieu qua, ban can nam vung vong doi cua mot tep tin trong Git va cac lenh tuong ung. Duoi day la doan ma mau mo ta quy trinh cap nhat ma nguon co ban:

git status
git add .
git commit -m "feat: them tinh nang dang nhap"
git push origin main

Giai thich chi tiet cac buoc

  1. git status: Kiem tra trang thai hien tai cua cac tep tin xem chung da duoc theo doi chua hoac co thay doi nao chua duoc luu.
  2. git add .: Dua cac thay doi tu Working Directory vao Staging Area de chuan bi ghi nhan.
  3. git commit: Luu tru cac thay doi tu Staging Area vao Local Repository kem theo thong diep mo ta ro rang.
  4. git push: Dong bo hoa cac commit tu local len Remote Repository (nhu GitHub, GitLab, Bitbucket).
  5. Best Practices khi su dung Git

    Su dung Git khong dung cach co the dan den lich su ma nguon hon doan va kho debug. Duoc tong hop tu kinh nghiệm thuc te cua cac doi ngũ ky thuat lon, duoi day la cac nguyen tắc can tuan thu:

    • Commit nho gon va co y nghia: Moi commit chi nen giai quyet mot van de hoac them mot tinh nang cu the. Thong diep commit can tuan thu quy uoc (Conventional Commits) nhu feat, fix, refactor.
    • Giai quyet xung dot (Conflict) som: Thuong xuyen cap nhat ma nguon tu nhanh chinh (nhu main hoac develop) ve nhanh dang lam viec de phat hien va xu ly xung dot tu som.
    • Tranh su dung force push tren nhanh chung: Lenh git push --force co the ghi de lich su tren remote va gay mat ma nguon cua dong doi.

    Cac loi thuong gap va cach xu ly

    1. Commit nham vao nhanh (Wrong Branch)

    Khi ban vo tinh commit tren nhanh main thay vi nhanh tinh nang, ban co the tach nhanh moi va hoan tac tren nhanh hien tai:

    git checkout -b feature/new-login
    git checkout main
    git reset --soft HEAD~1

    2. Quen khong dua tep vao commit gan nhat

    Su dung co che amend de bo sung thay doi vao commit vua roi ma khong can tao commit moi:

    git add .+
    git commit --amend --no-edit

    FAQ - Cau hoi thuong gap trong phong van

    Phan biet giua git merge va git rebase?

    Git merge tao ra mot commit gop (merge commit) va giu nguyen toan bo lich su cua cac nhanh. Git rebase di chuyen hoac viet lai lich su commit cua nhanh hien tai len tren dinh cua nhanh dich, giup lich su thang hang va de doc hon nhung co the gay mat dau vet neu dung sai cach tren nhanh chung.

    Git stash dung de lam gi?

    Git stash giup tam luu cac thay doi chua hoan tat trong Working Directory de chuyen sang nhanh khac xu ly viec khan cap ma khong can phải commit tam thoi.

Ôn tiếp theo chủ đề này

Chuyển sang câu hỏi hoặc case study để luyện cách trả lời.

Xem câu hỏi