Lệnh git pull được sử dụng để tìm nạp (fetch) và tải xuống nội dung từ remote repository và cập nhật local repository sao cho phù hợp với nội dung đó. Hợp nhất các thay đổi remote upstream vào local repository là một nhiệm vụ phổ biến trong các luồng công việc cộng tác dựa trên Git. Lệnh git pull sự kết hợp của hai lệnh git fetch và git merge. Trong giai đoạn đầu tiên của hoạt động, git pull sẽ thực thi một git fetch nằm trong phạm vi nhánh cục bộ mà HEAD được chỉ vào. Khi nội dung được tải xuống, git pull sẽ nhập workflow hợp nhất. Một cam kết hợp nhất mới sẽ được tạo và HEAD được cập nhật để trỏ đến cam kết mới (commit). Cùng NQ News Cloud chia sẻ những thông tin về Git Pull ngay tại bài viết này nhé.
Git Pull hoạt động như thế nào?
Lệnh git pull trước tiên chạy git fetch để tải nội dung từ remote repository đã chỉ định. Sau đó, một git merge được thực thi để hợp nhất các remote content ref và head vào một local merge commit mới. Để thể hiện rõ hơn quá trình kéo (pull) và sáp nhập (merge), chúng ta hãy xem xét ví dụ sau. Giả sử chúng ta có một kho lưu trữ với một nhánh chính và một nguồn từ xa.

Trong trường hợp này, git pull sẽ tải xuống tất cả các thay đổi từ điểm mà local và master chuyển hướng. Trong ví dụ này, điểm đó là E. git pull sẽ tìm nạp các remote commit được chuyển hướng là A-B-C. Quá trình pull sau đó sẽ tạo ra một local merge commit mới chứa nội dung của các remote commit được chuyển hướng mới.

Trong sơ đồ trên, chúng ta có thể thấy commit mới H. Commit này là một merge commit mới chứa nội dung của các remote commit A-B-C và có thông báo log message. Ví dụ này là một trong một vài chiến lược hợp nhất git pull. Tùy chọn –rebase có thể được chuyển cho git pull để sử dụng chiến lược hợp nhất rebase thay vì merge commit. Ví dụ tiếp theo sẽ cho thấy cách rebase pull hoạt động. Giả sử rằng chúng ta đang ở sơ đồ đầu tiên và đã thực hiện git pull –rebase.

Trong sơ đồ này, chúng ta có thể thấy rằng một rebase pull không tạo ra H commit mới. Thay vào đó, rebase đã sao chép các remote commits A–B–C và gắn chúng vào local origin/master commit history.
Các tùy chọn phổ biến
git pull
Lấy bản sao từ xa được chỉ định của nhánh hiện tại và ngay lập tức hợp nhất nó vào bản sao local. Điều này giống như git fetch
git pull –no-commit
Tương tự như lời gọi mặc định (default invocation), tìm nạp remote content nhưng không tạo ra một merge commit mới.
git pull –rebase
Tương tự như pull trước, Thay vì sử dụng git merge để tích hợp nhánh từ xa với nhánh cục bộ, hãy sử dụng git rebase.
git pull –verbose
Cung cấp verbose output khi pullo, hiển thị nội dung được tải xuống và các chi tiết hợp nhất.
Git pull và syncing
git pull là một trong nhiều lệnh yêu cầu “đồng bộ hóa” remote content. Lệnh git remote được sử dụng để xác định remote endpoint nào mà các lệnh đồng bộ hóa sẽ hoạt động. Lệnh git push được sử dụng để tải nội dung lên remote repository.
Lệnh git fetch có thể bị nhầm lẫn với git pull. Cả hai đều được sử dụng để tải về remote content. git fetch có thể được coi là tùy chọn “an toàn” trong khi đó, git pull có thể được coi là không an toàn. git fetch sẽ tải xuống remote content và không làm thay đổi trạng thái của local repository. Ngoài ra, git pull sẽ tải xuống remote content và ngay lập tức cố gắng thay đổi local state để phù hợp với nội dung đó. Điều này có thể vô tình khiến local repository rơi vào trạng thái xung đột.
Kể từ ngày 05/11/2018, VCCloud chính thức đổi tên thành NQ News Cloud – là nhà cung cấp các dịch vụ đám mây hàng đầu tại Việt Nam hiện nay với các dịch vụ nổi bật như: NQ News Cloud Server, NQ News CDN, NQ News Load Balancer, NQ News Pre-built Application, NQ News Business Mail, NQ News Simple Storage. Hãy tăng tốc thích nghi cho doanh nghiệp cùng các giải pháp công nghệ của NQ News Cloud tại đây.