Skip to content

0. Git Workflow Map

IMPORTANT

MỤC TIÊU CỦA PHASE 1: Bạn không học Git như một bảng tra lệnh. Bạn học Git như một hệ thống làm việc, hệ thống phối hợp, và hệ thống cứu nạn khi mọi thứ đi sai.

0.1 Vì sao Phase 1 tồn tại?

Rất nhiều người học Git theo kiểu:

  • git add là để add file
  • git commit là để lưu
  • git push là để đẩy lên GitHub

Cách hiểu này đủ để làm bài tập nhỏ, nhưng không đủ để sống sót trong team thật.

Trong công việc thực tế, Git phải trả lời 4 câu hỏi quan trọng:

  1. Tôi đang thay đổi gì?
  2. Tôi nên đóng gói thay đổi đó thành commit như thế nào để dễ review và dễ rollback?
  3. Tôi phải đồng bộ với branch chung ra sao mà không phá lịch sử của team?
  4. Nếu lỡ reset nhầm, merge lỗi, rebase sai hoặc commit nhầm secret thì cứu bằng cách nào?

Phase 1 được thiết kế để trả lời đúng 4 câu hỏi đó theo một luồng học có chủ đích.


0.2 Git mental model: đừng nghĩ theo lệnh, hãy nghĩ theo dòng chảy

Git đáng tin khi bạn nhìn nó như một pipeline ra quyết định:

text
    Bạn đang code
         |
         v
+-------------------+
| Working Directory |
| Thay đổi thô      |
+-------------------+
         |
         | chọn đúng phần cần chốt
         v
+-------------------+
| Staging Area      |
| Commit đang chuẩn |
+-------------------+
         |
         | đóng gói thành lịch sử có ý nghĩa
         v
+-------------------+
| Commit History    |
| Dấu vết kỹ thuật  |
+-------------------+
         |
         | phối hợp với người khác
         v
+-------------------+
| Shared Branches   |
| main / release    |
+-------------------+
         ^
         |
         | khi có sự cố
         |
+-------------------+
| Recovery Tools    |
| reflog / revert   |
| cherry-pick / tag |
+-------------------+

Điểm quan trọng nhất: Git không chỉ lưu code. Git lưu quyết định.
Một commit tốt giúp review dễ hơn. Một branch strategy tốt giúp phối hợp an toàn hơn. Một recovery mindset tốt giúp bạn bớt hoảng loạn khi xảy ra sự cố.


0.3 Góc nhìn đúng về Git trong production

Git là workflow system

Git giúp bạn tách việc lớn thành các bước nhỏ, reviewable, revertable:

  • thay đổi đang còn lộn xộn trong working directory
  • thay đổi nào đủ sạch để đưa vào staging
  • commit nào đủ atomic để review
  • branch nào nên giữ private, branch nào là shared history

Git là recovery system

Sai lầm với Git là chuyện bình thường:

  • commit nhầm file
  • commit sai message
  • rebase nhầm branch
  • merge tạo conflict
  • reset quá tay
  • lỡ đưa secret vào lịch sử

Người mới hoảng. Người có workflow thì biết đường lui.
Phase 1 được viết để bạn đi từ "biết lệnh" sang "biết cách không làm hỏng repo và biết cứu repo khi có chuyện".


0.4 Bản đồ phụ thuộc của Phase 1

Đây là dependency map của pack này. Học theo luồng sẽ dễ hiểu hơn rất nhiều so với nhảy cóc từng lệnh:

text
00. Git Workflow Map
 |
 +--> 01. Staging Area & Atomic Commits
 |       |
 |       +--> 02. Conventional Commits
 |       |
 |       +--> 03. Branching Basics
 |               |
 |               +--> 04. Merge vs Rebase
 |               |       |
 |               |       +--> 05. Reset, Revert & Cherry-pick
 |               |       |       |
 |               |       |       +--> 06. Reflog, Bisect & Recovery
 |               |       |       |       |
 |               |       |       |       +--> 07. Tags, Releases & Secrets
 |               |       |       |               |
 |               |       |       |               +--> Future: Phase 1 Workflow Scenarios
 |               |       |       |
 |               |       |       +--> /practice/git/
 |               |       |
 |               |       +--> /practice/git/
 |               |
 |               +--> /practice/git/
 |
 +--> Reference deep dives:
       /git/basic/workflow
       /git/branching/merge-vs-rebase
       /git/advanced/reflog

Cách đọc map này:

  • 01 là nền móng: nếu chưa hiểu staging area và atomic commit, các bài sau sẽ chỉ là thuộc lệnh.
  • 02 biến commit history thành tài sản có thể đọc, search và tự động hóa.
  • 03 dạy cách tách luồng công việc an toàn bằng branch.
  • 04 dạy cách đưa các luồng đó quay lại branch chung mà không phá team.
  • 05-06 là bộ điều hướng và cứu nạn: undo đúng cách, chọn đúng commit, khôi phục đúng chỗ.
  • 07 nối workflow kỹ thuật với phát hành thật: tag, release, secret hygiene.

0.5 Mỗi bài trong pack này trả lời câu hỏi gì?

BàiCâu hỏi trọng tâmNăng lực bạn có sau bài
01Làm sao tạo commit sạch thay vì gom tất cả vào một cục?Biết staging có chủ đích, commit atomic
02Làm sao để lịch sử commit giúp team đọc được?Viết commit có cấu trúc, sửa commit local đúng cách
03Làm sao làm song song mà không phá main?Dùng feature branch, hotfix branch, release thinking
04Khi nào merge, khi nào rebase?Phối hợp an toàn với shared history
05Khi commit sai, undo kiểu nào là đúng?Phân biệt reset, revert, cherry-pick
06Khi lỡ tay làm mất thứ gì đó thì cứu sao?Dùng reflog, bisect, recovery mindset
07Làm sao đi từ code change đến release an toàn?Tag đúng, release rõ, không commit secret

0.6 Trình tự học gợi ý

Nếu bạn muốn học nhanh nhưng vẫn chắc, đi theo thứ tự này:

  1. Đọc bài này để nắm bản đồ tổng thể.
  2. Học lần lượt từ 01 -> 07. Đừng nhảy thẳng vào reflog hay rebase nếu staging và branch chưa vững.
  3. Sau mỗi 1-2 bài, vào /practice/git/ để đổi ngữ cảnh từ "đọc hiểu" sang "ra quyết định".
  4. Khi hoàn thành cả pack, chuyển sang future scenario practice của Phase 1 trong practice hub để luyện các tình huống áp lực:
    • commit nhầm vào main
    • reset nhầm rồi mất commit
    • cần lấy 1 hotfix commit mà không lấy cả branch
    • lỡ commit secret
  5. Sau đó mới quay lại các deep dive nâng cao để đào sâu vào công cụ cụ thể.

TIP

Rule of thumb: Học Git theo thứ tự workflow trước, command sau; recovery trước panic; team safety trước personal convenience.


0.7 Cách dùng pack này cho đúng

Nếu bạn là người mới

  • Đi đúng thứ tự từ 01 đến 07
  • Không cố nhớ tất cả flags của lệnh
  • Tập trả lời: "Tôi đang ở trạng thái nào của workflow?"

Nếu bạn đã biết Git cơ bản

  • Dùng pack này để sửa mental model
  • So sánh cách bạn đang làm với luồng chuẩn trong team
  • Đặc biệt chú ý các phần when not to usehow to recover

Nếu bạn đang làm việc trong team

  • Đọc pack này như một bộ nguyên tắc vận hành, không phải tutorial cá nhân
  • Mỗi quyết định Git đều nên tối ưu cho:
    • review
    • rollback
    • audit trail
    • an toàn của shared branch

0.8 Trước khi đi tiếp, hãy giữ 5 nguyên tắc này trong đầu

  1. Một commit tốt phải kể được một câu chuyện nhỏ, rõ ràng.
  2. Shared history an toàn quan trọng hơn local history đẹp.
  3. Không undo bằng cảm xúc; undo bằng đúng công cụ.
  4. Recovery không phải kỹ năng phụ. Recovery là kỹ năng sống còn.
  5. Git giỏi nhất khi bạn dùng nó để giảm rủi ro cho cả team, không chỉ cho riêng mình.