Giới thiệu về nhánh

Git nâng cao

George Boorman

Curriculum Manager, DataCamp

Nội dung sẽ học

  • Nhánh

 

  • Remote

 

  • Xung đột

Logo Git

Git nâng cao

Bạn cần biết gì

  • Cách Git lưu trữ dữ liệu
  • Cách tạo repo
  • Cách tạo commit
  • Cách so sánh phiên bản
  • Cách hoàn nguyên phiên bản

Nền tảng Git

Git nâng cao

Nhánh

  • Nhánh = một phiên bản riêng của repo

  • Git dùng nhánh để theo dõi có hệ thống nhiều phiên bản file

 

  • Trong mỗi nhánh:
    • Một số file có thể giống nhau
    • Số khác có thể khác biệt
    • Một số có thể không tồn tại

Vũ trụ song song

Git nâng cao

Vì sao dùng nhánh?

Hệ thống đang chạy

Trang khóa học DataCamp

  • Hoạt động như mong đợi
  • Nhánh mặc định = main

Phát triển tính năng

Trang khóa học DataCamp với AI Assistant

  • Có thể gặp lỗi trong phát triển và kiểm thử
  • Không ảnh hưởng hệ thống đang chạy
Git nâng cao

Vì sao dùng nhánh?

  • Nhiều người có thể làm cùng lúc trên một dự án

 

  • So sánh trạng thái repo giữa các nhánh

 

  • Hợp nhất nội dung, đưa tính năng mới lên hệ thống chạy

 

  • Mỗi nhánh nên có mục đích rõ ràng
Git nâng cao

Trực quan hóa nhánh

Hình ảnh nhánh main

Git nâng cao

Tách nhánh

Tạo nhánh ai-assistant từ main và thực hiện ba commit

Git nâng cao

Hợp nhất về main

Hợp nhất nhánh ai-assistant trở lại nhánh main

Git nâng cao

Sửa lỗi (bug)

Tạo nhánh bug-fix từ main, thực hiện ba commit, rồi hợp nhất về main

Git nâng cao

Nhận diện nhánh

  • Liệt kê tất cả nhánh
git branch
  main
* ai-assistant
  • * = nhánh hiện tại
Git nâng cao

Chuyển giữa các nhánh

git switch main
Switched to branch 'main'
Git nâng cao

Tạo nhánh mới

  • Tạo nhánh mới tên speed-test
git branch speed-test
  • Chuyển sang nhánh speed-test
git switch speed-test
Switched to branch 'speed-test'
  • Tạo nhánh speed-test và chuyển sang ngay
git switch -c speed-test
Switched to a new branch 'speed-test'
Git nâng cao

Thuật ngữ

  • Tạo nhánh mới = "tách nhánh"

  • Tạo speed-test từ main = "tách từ main"

Git nâng cao

Ayo berlatih!

Git nâng cao

Preparing Video For Download...