Git Pull
Cập nhật lần cuối
git pull cập nhật nhánh hiện tại bằng các commit mới nhất từ remote của nó. Bên dưới, lệnh này chạy git fetch để tải thay đổi về, rồi git merge để tích hợp chúng, nên git pull = git fetch + git merge. Thêm --rebase để áp dụng lại các commit local lên trên thay vì tạo merge commit.
Thử các lệnh này trong playground terminal: một shell thật ngay trên trình duyệt, không cần cài đặt gì.
Cú pháp
| Lệnh | Tác dụng |
|---|---|
git pull | Fetch và merge remote của nhánh hiện tại |
git pull origin main | Pull một nhánh cụ thể từ remote |
git pull --rebase | Fetch, rồi rebase các commit của bạn lên trên |
git pull --ff-only | Chỉ pull khi fast-forward được (không merge) |
git pull --no-rebase | Buộc merge kể cả khi rebase là mặc định |
Tình huống thường gặp
| Mục tiêu | Lệnh |
|---|---|
| Lấy bản mới nhất cho nhánh của bạn | git pull |
| Giữ lịch sử thẳng hàng | git pull --rebase |
| Hủy một lần pull bị xung đột | git merge --abort |
| Bỏ các commit local và khớp với remote | git fetch rồi git reset --hard origin/main |
Câu hỏi thường gặp về git pull
Thực ra git pull làm gì?
git fetch (tải về) rồi git merge (tích hợp). Nếu bạn cấu hình, bước merge sẽ được thay bằng rebase.git pull và git fetch khác nhau thế nào?
git fetch chỉ tải thay đổi từ remote và cập nhật các nhánh remote-tracking, không đụng đến nhánh bạn đang làm việc. git pull fetch như vậy rồi merge các thay đổi vào nhánh hiện tại. Dùng fetch để xem trước những thay đổi sắp đến; dùng pull để lấy và tích hợp chúng trong một bước. Xem bài phân tích đầy đủ git fetch vs pull để biết khi nào dùng lệnh nào.git pull --rebase là gì và khi nào nên dùng?
git pull --rebase fetch các commit từ remote rồi áp dụng lại các commit local của bạn lên trên chúng, thay vì tạo merge commit. Cách này giữ lịch sử thẳng hàng, điều mà nhiều nhóm ưa chuộng. Hãy dùng khi bạn có commit local chưa push và muốn tránh merge commit mỗi lần pull.Làm sao để xử lý xung đột sau khi git pull?
git add cho chúng và git commit (với merge) hoặc git rebase --continue (với pull kiểu rebase). Nếu muốn rút lui, chạy git merge --abort hoặc git rebase --abort.Có thể luyện tập lệnh này online không?
git pull trong một shell thật ngay trên trình duyệt, không cần cài đặt gì. Khóa học Git tương tác miễn phí của Coddy cũng hướng dẫn làm việc với remote từng bước.