Menu
CoddyTech

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ì.

git pull tải các commit mới từ remote về và merge chúng vào nhánh hiện tại: fetch và merge trong một bước.

Cú pháp

LệnhTác dụng
git pullFetch và merge remote của nhánh hiện tại
git pull origin mainPull một nhánh cụ thể từ remote
git pull --rebaseFetch, rồi rebase các commit của bạn lên trên
git pull --ff-onlyChỉ pull khi fast-forward được (không merge)
git pull --no-rebaseBuộc merge kể cả khi rebase là mặc định

Tình huống thường gặp

Mục tiêuLệnh
Lấy bản mới nhất cho nhánh của bạngit pull
Giữ lịch sử thẳng hànggit pull --rebase
Hủy một lần pull bị xung độtgit merge --abort
Bỏ các commit local và khớp với remotegit 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ì?
Lệnh này tải các commit mới nhất từ remote cho nhánh hiện tại và tích hợp chúng vào nhánh local. Đây là cách viết tắt của hai lệnh: 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?
Pull có thể gây xung đột merge khi thay đổi ở local và trên remote chồng lên nhau. Mở các tệp bị xung đột, giải quyết những đoạn được đánh dấu, rồi chạy 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?
Có. Mở playground terminal để chạy 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.
Hình minh họa các ngôn ngữ lập trình của Coddy

Học Git cùng Coddy

Bắt đầu