VieLang
Lộ trình nghềPhỏng vấnCông cụViệc làm IT
  • Góc học tập
Tải app
  • Thư viện
  • Luyện thi
  • Cẩm nang
  • Góc học tập
Cẩm nang · Công cụ

Git hằng ngày: quy trình làm việc theo nhánh

Chuỗi lệnh Git một developer dùng mỗi ngày, từ nhận task tới khi pull request được merge.

Cập nhật 27/09/2026.

Nội dung bài · 5 mục
  1. 1.Bắt đầu một task
  2. 2.Trong lúc làm
  3. 3.Cập nhật nhánh khi main đã đổi
  4. 4.Mở pull request
  5. 5.Lệnh cứu nguy

Phần lớn team làm theo cùng một khung: nhánh main luôn chạy được, mỗi task làm trên một nhánh riêng, xong thì mở pull request để review rồi mới merge. Khái niệm commit, branch, merge, conflict đã có ở chương Git của khoá Kiến trúc; bài này ghép chúng thành quy trình.

Bắt đầu một task

Lấy code mới nhất rồi tạo nhánh từ main:

git switch main
git pull
git switch -c feature/123-them-bo-loc-san-pham

Tên nhánh theo quy ước của team. Kiểu hay gặp: feature/…, fix/…, kèm mã task để tra ngược.

Trong lúc làm

Commit nhỏ, mỗi commit một thay đổi có ý nghĩa:

git status
git diff
git add src/Products/ProductFilter.cs
git commit -m "Thêm bộ lọc sản phẩm theo khoảng giá"
  • Xem git status và git diff trước khi add, tránh commit nhầm file cấu hình, file log.
  • Message nói commit làm gì. Nhiều team dùng quy ước Conventional Commits: feat: …, fix: ….
  • Đẩy nhánh lên remote thường xuyên để không mất việc khi hỏng máy:
git push -u origin feature/123-them-bo-loc-san-pham   # lần đầu
git push                                              # các lần sau

Cập nhật nhánh khi main đã đổi

Người khác merge vào main trong lúc bạn làm. Kéo thay đổi đó về nhánh của mình để xử lý conflict sớm:

git switch main
git pull
git switch feature/123-them-bo-loc-san-pham
git merge main

Một số team yêu cầu git rebase main thay cho merge để lịch sử thẳng. Chỉ rebase nhánh chưa ai khác dùng chung, và sau khi rebase phải đẩy lên bằng git push --force-with-lease.

Mở pull request

  • Tự đọc lại diff trên GitHub trước khi gửi reviewer.
  • Mô tả: làm gì, vì sao, cách test. Gắn link task.
  • Sửa theo góp ý bằng commit mới trên cùng nhánh, pull request tự cập nhật.

Sau khi merge, dọn nhánh:

git switch main
git pull
git branch -d feature/123-them-bo-loc-san-pham

Lệnh cứu nguy

Tình huống Lệnh
Bỏ thay đổi chưa commit của một file git restore <file>
Bỏ file khỏi vùng chuẩn bị commit git restore --staged <file>
Sửa message commit cuối (chưa push) git commit --amend
Cất tạm thay đổi để đổi nhánh git stash, xong việc thì git stash pop
Huỷ một commit đã push git revert <commit>
Xem lịch sử gọn git log --oneline --graph

Không dùng git push --force lên nhánh chung như main: nó ghi đè commit của người khác.

Nguồn

  • Pro Git — Branching Workflows git-scm.com
  • Git Documentation — git-rebase git-scm.com
  • GitHub Docs — GitHub flow docs.github.com
  • Conventional Commits 1.0.0 conventionalcommits.org

Nội dung bài

  1. 1.Bắt đầu một task
  2. 2.Trong lúc làm
  3. 3.Cập nhật nhánh khi main đã đổi
  4. 4.Mở pull request
  5. 5.Lệnh cứu nguy