Giao diện
3. Push & Pull (Sync)
IMPORTANT
GOAL: Đồng bộ code với Remote Repository mà không gây ra xung đột (conflicts) không cần thiết hoặc làm bẩn lịch sử (dirty history).
3.1 Gửi code lên Remote (git push)
Sau khi commit, code vẫn chỉ nằm ở máy local của bạn. Để đồng nghiệp thấy, bạn phải push.
bash
git push origin main(origin: tên mặc định của remote server, main: tên branch)
3.2 Lấy code về (git pull)
Để cập nhật code mới nhất từ đồng nghiệp.
Bản chất của git pull
Rất nhiều người lầm tưởng pull là một lệnh đơn giản. Thực tế:
git pull = git fetch (Tải code về ẩn) + git merge (Gộp code vào branch hiện tại)
Hành vi mặc định này thường tạo ra một Merge Commit thừa thãi (dạng "Merge branch 'main' of..."), làm lịch sử commit trở nên rối rắm.
HPN'S TIP #3: ALWAYS USE REBASE
Tại PENALGO, chúng ta ưu tiên lịch sử tuyến tính (linear history).
Thay đổi thói quen của bạn ngay lập tức:
❌ Đừng dùng: git pull (mặc định) ✅ Hãy dùng: git pull --rebase
bash
git pull --rebase origin mainSự khác biệt:
- Merge (Mặc định): Tạo ra một đường rẽ nhánh và gộp lại -> Lịch sử như mạng nhện.
- Rebase: Tạm thời gỡ các commit của bạn ra, cập nhật code mới từ server, sau đó đắp (replay) commit của bạn lên trên cùng -> Lịch sử thẳng tắp, sạch đẹp.
NOTE
Nếu có conflict khi rebase, Git sẽ dừng lại. Bạn cần sửa conflict, sau đó chạy git rebase --continue. Tuyệt đối bình tĩnh, đây là quy trình chuẩn.