IT nói tiếng người
Công cụMốc 2 · Đọc hiểu được

⬆️ 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.

⚠ 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 --force lê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

🧪 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ồi git 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.

⚖ Hay bị nhầm với thuật ngữ khác

← Xem tất cả thuật ngữ