Giao diện
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 addlà để add filegit commitlà để lưugit pushlà để đẩ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:
- Tôi đang thay đổi gì?
- Tôi nên đóng gói thay đổi đó thành commit như thế nào để dễ review và dễ rollback?
- Tôi phải đồng bộ với branch chung ra sao mà không phá lịch sử của team?
- 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/reflogCá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ài | Câu hỏi trọng tâm | Năng lực bạn có sau bài |
|---|---|---|
01 | Là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 |
02 | Là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 |
03 | Làm sao làm song song mà không phá main? | Dùng feature branch, hotfix branch, release thinking |
04 | Khi nào merge, khi nào rebase? | Phối hợp an toàn với shared history |
05 | Khi commit sai, undo kiểu nào là đúng? | Phân biệt reset, revert, cherry-pick |
06 | Khi lỡ tay làm mất thứ gì đó thì cứu sao? | Dùng reflog, bisect, recovery mindset |
07 | Là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:
- Đọc bài này để nắm bản đồ tổng thể.
- 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.
- Sau mỗi 1-2 bài, vào /practice/git/ để đổi ngữ cảnh từ "đọc hiểu" sang "ra quyết định".
- 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
- commit nhầm vào
- 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đến07 - 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 use và how 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
- Một commit tốt phải kể được một câu chuyện nhỏ, rõ ràng.
- Shared history an toàn quan trọng hơn local history đẹp.
- Không undo bằng cảm xúc; undo bằng đúng công cụ.
- Recovery không phải kỹ năng phụ. Recovery là kỹ năng sống còn.
- 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.