Git pull là gì? Khác gì với git fetch

Lệnh git pull được sử dụng để tìm nạp và tải xuống nội dung từ kho lưu trữ từ xa và cập nhật kho lưu trữ cục bộ để phù hợp với nội dung. Hợp nhất các thay đổi ngược dòng từ xa vào kho lưu trữ cục bộ là một nhiệm vụ phổ biến trong quy trình làm việc cộng tác dựa trên Git. Lệnh git pull là sự kết hợp của lệnh git fetch và git merge. Trong giai đoạn đầu của hoạt động, git pull sẽ thực hiện tìm nạp git trong nhánh cục bộ mà HEAD đã được trỏ tới. Khi nội dung được tải xuống, git pull sẽ nhập luồng công việc hợp nhất. Một cam kết hợp nhất mới được tạo và HEAD được cập nhật để trỏ đến cam kết mới.

Git Pull hoạt động như thế nào?

Lệnh git pull đầu tiên chạy git fetch để tải nội dung từ kho lưu trữ từ xa được chỉ định. Sau đó, một hợp nhất git được thực hiện để hợp nhất ref nội dung từ xa và đi vào một cam kết hợp nhất cục bộ mới. Để minh họa rõ ràng hơn quá trình kéo và hợp nhất, chúng ta hãy xem 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à cục bộ và chính được chuyển hướng. Trong ví dụ này, điểm đó là E. git pull sẽ tìm nạp các cam kết từ xa được chuyển hướng dưới dạng ABC. Sau đó, kéo sẽ tạo một cam kết hợp nhất cục bộ mới chứa nội dung của các cam kết từ xa được chuyển hướng mới.

Mình nghĩ bạn cần xem =>  Internet download manager là gì? Hướng dẫn cài đặt và gỡ IDM

Trong sơ đồ trên, chúng ta có thể thấy rằng cam kết H. Cam kết mới này là một cam kết hợp nhất mới có chứa nội dung của các cam kết từ xa ABC và có một thông báo bản ghi. Ví dụ này là một trong 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ì cam kết hợp nhất. Ví dụ tiếp theo sẽ cho thấy cách hoạt động của rebase pull. Giả sử rằng chúng ta đang ở trong sơ đồ đầu tiên và đã thực hiện git pull –rebase.

Trong biểu đồ này, chúng ta có thể thấy rằng một lần kéo rebase không tạo ra các cam kết H mới. Thay vào đó, rebase đã sao chép các cam kết từ xa A – B – C và gắn chúng vào lịch sử cam kết gốc / chính cục bộ.

Các tùy chọn phổ biến

git kéo

Nhận bản sao từ xa được chỉ định của chi nhánh hiện tại và ngay lập tức hợp nhất nó vào bản sao cục bộ. Điều này cũng giống như git fetch theo sau là git merge origin / .

git pull – không cam kết

Tương tự như lời gọi mặc định, tìm nạp nội dung từ xa nhưng không tạo cam kết hợp nhất 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 đầu ra dài dòng khi kéo xuống, hiển thị nội dung đã tải xuống và các chi tiết đã hợp nhất.

Git kéo và đồng bộ hóa

git pull là một trong nhiều lệnh yêu cầu “đồng bộ hóa” nội dung từ xa. Lệnh git remote được sử dụng để xác định điểm cuối từ xa 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 kho lưu trữ từ xa.

Lệnh git fetch có thể bị nhầm lẫn với git pull. Cả hai đều được sử dụng để tải nội dung từ xa. 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 nội dung từ xa và không thay đổi trạng thái của kho lưu trữ cục bộ. Ngoài ra, git pull sẽ tải xuống nội dung từ xa và ngay lập tức cố gắng thay đổi trạng thái cục bộ để phù hợp với nội dung đó. Điều này vô tình có thể khiến kho lưu trữ cục bộ rơi vào trạng thái xung đột.

Nguồn: tech.vccloud.vn

✤ Top 20 bài viết Tổng Hợp mới nhất :

Xem thêm nhiều Tổng Hợp mới hay

Leave A Reply

Your email address will not be published.