⬇️ Pull là gì?
Kéo thay đổi của người khác từ chỗ chung về máy mình.
1
Hiểu nó là gì
Pull lấy các commit mới trên kho chung về và gộp vào bản trên máy bạn, để bạn làm tiếp trên nền mới nhất.
Nói theo đời thường:
Trước khi viết tiếp tài liệu chung, bạn tải bản mới nhất về — không thì bạn đang sửa lên một bản cũ mà người khác đã thay.
Trước khi viết tiếp tài liệu chung, bạn tải bản mới nhất về — không thì bạn đang sửa lên một bản cũ mà người khác đã thay.
⚠ Chỗ ẩn dụ này hỏng
Tải bản mới nhất về — nhưng pull không chỉ tải, nó còn tự gộp vào bản bạn đang làm dở.
Thực ra git pull = git fetch (tải về, chưa đụng gì) + git merge (gộp vào). Nếu bạn và người kia cùng sửa một dòng, bước gộp dừng lại báo xung đột. Người mới thấy chữ CONFLICT thì hoảng, nhưng đó chỉ là Git hỏi: “hai bên khác nhau, chọn bên nào?”
2
Code trông thế nào
git pull # lấy commit mới trên kho chung, gộp vào máy bạn # Kết quả thường thấy: Updating 599c4b6..2595a41 Fast-forward ← gộp êm, không ai sửa trùng chỗ # Hoặc: CONFLICT (content): Merge conflict in terms.js ← mở file, chọn giữ bên nào, rồi add + commit
Thói quen tốt: pull trước khi bắt đầu làm, để không sửa lên bản đã cũ.
3
Khi nào bạn dùng nó
✓ Dùng khi
- Bắt đầu một buổi làm việc mới
- Push bị từ chối vì kho chung đã có commit mới
- Vừa merge một PR trên web, muốn máy mình có bản đó
✗ Đừng dùng khi
- Đang sửa dở nhiều file chưa commit — pull có thể trộn lộn xộn; commit hoặc stash trước
- Muốn xem có gì mới mà chưa muốn gộp — dùng
git fetchrồi xem
Chưa cần biết: fetch tách riêng, pull --rebase, theo dõi nhiều nhánh remote.
Để dành tới Mốc 3 — Tự dựng được: Bạn tự đưa được một trang lên mạng, và biết phải sờ vào đâu khi nó không lên.
Dấu hiệu bạn đã cần học nó: Khi lịch sử của bạn đầy những commit tên “Merge branch main…” mà bạn không cố tình tạo.
4
Đi đâu tiếp
🧪 Thử 2 phút, không cần cài gì
Trên GitHub, sửa một file ngay trên web (bút chì → Commit changes). Về máy gõgit pull: bạn vừa lấy về một thay đổi được tạo ở “nơi khác” — giống hệt khi đồng đội làm.