⬆️ Push là gì?
Gửi các commit từ máy bạn lên chỗ chung.
1
Hiểu nó là gì
Push đẩy những commit đang nằm trên máy bạn lên kho chung trên mạng (GitHub, GitLab…) để người khác và máy tự động nhìn thấy.
Nói theo đời thường:
Bạn viết bài ở nhà thì chỉ mình bạn đọc. Push là đem nộp lên bảng tin chung — từ lúc đó cả nhóm mới thấy và CI mới chạy.
Bạn viết bài ở nhà thì chỉ mình bạn đọc. Push là đem nộp lên bảng tin chung — từ lúc đó cả nhóm mới thấy và CI mới chạy.
⚠ Chỗ ẩn dụ này hỏng
Nộp lên bảng tin — nhưng bảng tin có thể từ chối nếu ai đó đã dán bài mới lên trước bạn.
Git không cho push đè lên thay đổi của người khác. Nếu kho chung đã có commit bạn chưa có, push bị từ chối (rejected) và bạn phải pull về gộp trước rồi push lại. Đây không phải lỗi — nó là Git đang bảo vệ công sức của đồng đội bạn.
2
Code trông thế nào
git push # đẩy các commit mới lên # Bị từ chối vì kho chung đã đi trước: ! [rejected] main -> main (fetch first) git pull # kéo về, gộp git push # đẩy lại, giờ thì được # Lần đầu đẩy một nhánh mới lên: git push -u origin ten-nhanh
Push là lúc CI bắt đầu chạy. Commit mà chưa push thì GitHub chưa biết gì.
3
Khi nào bạn dùng nó
✓ Dùng khi
- Đã commit xong và muốn đồng đội (hoặc CI) thấy
- Cuối ngày — code nằm trên máy cá nhân là code có thể mất
- Muốn mở Pull Request (phải push nhánh lên trước)
✗ Đừng dùng khi
- Push thẳng lên main khi đội đã thống nhất đi qua PR
- Dùng
push --forcelên nhánh chung — xoá mất commit của người khác - Push khi test ở local đang đỏ mà bạn biết rõ
Chưa cần biết: force-with-lease, push tag, nhiều remote, push một phần commit.
Để 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 bạn lỡ commit sai lên nhánh chung và cần sửa lịch sử mà không phá của người khác.
4
Đi đâu tiếp
- PullChiều ngược lại: lấy của người khác về.
- CI/CDThứ tự động thức dậy mỗi khi bạn push.
- Pull RequestPush nhánh lên rồi làm gì tiếp.
🧪 Thử 2 phút, không cần cài gì
Sửa một dòng bất kỳ trong dự án của bạn, commit rồigit push. Mở tab Actions (hoặc trang repo) trên GitHub ngay sau đó — bạn sẽ thấy commit vừa xuất hiện, và nếu có CI thì nó đang chạy.