Git Pull là gì? Mô hình hoạt động của lệnh Git Pull

Vì lệnh Git FetchGit Merge được sử dụng thường xuyên nên Git đã kết hợp hai lệnh này thành một lệnh đặc biệt gọi là Git Pull. Vậy Git Pull là gì? Nó được sử dụng như thế nào? Trong bài viết này, Got It sẽ mang đến cho các bạn một cái nhìn đầy đủ nhất về lệnh Git Pull.

Git Pull là gì?

Git Pull là một lệnh dùng để tải xuống dữ liệu từ một Remote repository và cập nhật Local repository phù hợp với dữ liệu đó. Nói cách khác, Git Pull là lệnh hợp nhất các thay đổi từ Remote repository vào Local repository.

Về bản chất, Git Pull chính là sự kết hợp của 2 lệnh Git FetchGit Merge. Giai đoạn đầu, Git Pull sẽ thực thi lệnh Git Fetch ở phạm vi nhánh cục bộ mà HEAD được trỏ đến. Khi dữ liệu được tải xuống, Git Pull sẽ bắt đầu quy trình hợp nhất như Git Merge. Một merge commit mới sẽ được tạo và HEAD cũng được cập nhật để trỏ đến merge commit đó.

Git Pull là sự kết hợp của 2 lệnh Git fetch và Git Merge

Mô hình hoạt động của Git Pull

Sau khi tìm hiểu Git Pull là gì, ở phần này chúng ta sẽ khám phá mô hình hoạt động của Git Pull. Về cơ bản, Git Pull sẽ hoạt động theo một quy trình cơ bản dưới đây:

  • Thực hiện lệnh Git Fetch để tải xuống dữ liệu từ Remote repository được chỉ định.
  • Chạy lệnh Git Merge để hợp nhất các nội dung tham chiếu từ xa và hướng về một local merge commit mới.

Để hiểu rõ hơn mô hình hoạt động của Git Pull, chúng ta sẽ phân tích một ví dụ sau:

Mô hình hoạt động của Git Pull

Giả sử, chúng ta có một repository gồm một nhánh chính (master branch) và một nguồn từ xa (remote origin). Git Pull sẽ tải xuống tất cả các thay đổi từ vị trí mà local và master chuyển hướng. Trong mô hình trên, vị trí tải xuống là E. Git Pull sẽ thực thi lệnh Git Fetch để “nạp” các remote commit được chuyển hướng tại A-B-C. Sau đó, local merge commit mới (H) được tạo ra có nội dung đồng bộ với các remote commit A-B-C.

Theo sơ đồ, H chính là một merge commit mới

Câu lệnh Git Pull dùng để đồng bộ Remote repository vào Local repository thường có cấu trúc sau:

git pull origin branch 

Trong đó, origin là tên Remote repository và branch là nhánh muốn đồng bộ.

Ví dụ, để đồng bộ master branch từ Remote repository vào Local repository, chúng ta sẽ dùng lệnh:

git pull origin master

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

Giống như bất kỳ lệnh nào khác trong Git, lệnh Git Pull cũng có một số tùy chọn giúp sử dụng lệnh một cách tự nhiên và hiệu quả.

  • git pull <remote>: Lấy bản sao remote đã được chỉ định của nhánh hiện tại và hợp nhất nó vào bản sao local. Tùy chọn này giống như lệnh: git fetch origin/git merge origin .
  • git pull –no-commit: Đây là một tùy chọn Git Pull không có cam kết. Thực hiện tìm nạp nội dung remote nhưng không tạo ra merge commit mới.
  • git pull –rebase: Tùy chọn này là Git Rebase giúp hợp nhất remote branch với local branch nhanh chóng.
  • git pull –verbose: Cung cấp verbose output để hiển thị nội dung tải xuống và các chi tiết hợp nhất.

Sự khác biệt giữa Git Pull và Git Fetch

Trong Git, Git PullGit Fetch là 2 lệnh có chức năng tương đồng với nhau. Cả hai đều được sử dụng để tải xuống dữ liệu mới từ một Remote repository. Tuy nhiên, Git Fetch thường được coi là một phiên bản an toàn hơn của Git Pull.

Git Pull và Git Fetch đều tải xuống dữ liệu từ Remote repository

Git Fetch chỉ tải xuống nội dung từ Remote repository mà không làm thay đổi trạng thái của Local repository. Trong khi đó, Git Pull sẽ tải xuống nội dung và cố gắng thay đổi trạng thái của Local repository cho phù hợp với nội dung đó. Điều này có thể dẫn đến hiện tượng xung đột hợp nhất (merge-conflict) trong Git.

Việc sử dụng Git Fetch thường được dùng trong trường hợp có nhiều người làm việc trên cùng một nhánh. Còn Git Pull chỉ nên sử dụng khi có một người làm việc trên nhánh để hạn chế xung đột. Bạn chỉ nên dùng lệnh Git Pull trên một thư mục làm việc sạch (không có thay đổi đã cam kết).

Trên đây là một bức tranh tổng quan về lệnh Git Pull trong Git. Hy vọng bài viết này sẽ giúp các bạn hiểu rõ khái niệm Git Pull là gì và cách hoạt động của Git Pull. Nếu bạn muốn trở thành một lập trình viên, hãy khám phá Git Pull ngay nhé!

Tìm hiểu thêm:

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 18, 2021
Share this post to:
Tags:
git
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Hướng dẫn chi tiết cách push code lên Git

Hướng dẫn chi tiết cách push code lên Git

Có lẽ các bạn theo đuổi lĩnh vực IT đã quen thuộc với Git và GitHub rồi đúng không nhỉ? Tuy nhiên, Got It nhận thấy, một vài bạn đọc theo dõi blog vẫn còn mơ hồ, hoặc chưa biết cách để push code lên Git. Vậy thì hôm nay, chúng mình sẽ mang đến […]
Hướng dẫn cách tạo branch trong Git

Hướng dẫn cách tạo branch trong Git

Làm việc trực tiếp trong branch (nhánh) chính của một repository trên GitHub sẽ vô cùng nguy hiểm. Bởi lẽ, bạn sẽ có nguy cơ đưa những dòng code lỗi (bug) vào project đó mà không thông qua việc review code. Vì vậy, để tránh điều này xảy ra, bạn nên tạo một branch mới […]
Git fetch là gì? Phân biệt git fetch và git pull

Git fetch là gì? Phân biệt git fetch và git pull

Rất nhiều các bạn đang làm việc trong lĩnh vực IT thắc mắc về cách phân biệt giữa git fetch và git pull. Vậy git fetch là gì? Câu lệnh này hoạt động như thế nào? Và đâu là sự khác biệt giữa hai lệnh git fetch và git pull? Hãy cùng Got It tìm […]
Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Biến Git và GitHub trở thành công cụ đắc lực cùng Software Engineer nhà Got It!
Git Pull là gì? Mô hình hoạt động của lệnh Git Pull

Git Pull là gì? Mô hình hoạt động của lệnh Git Pull

Vì lệnh Git Fetch và Git Merge được sử dụng thường xuyên nên Git đã kết hợp hai lệnh này thành một lệnh đặc biệt gọi là Git Pull. Vậy Git Pull là gì? Nó được sử dụng như thế nào? Trong bài viết này, Got It sẽ mang đến cho các bạn một cái […]
Git Merge là gì? Những kiến thức cơ bản về Git Merge

Git Merge là gì? Những kiến thức cơ bản về Git Merge

Hợp nhất là một quá trình rất quan trọng khi làm việc với Git. Trong bài viết này, chúng ta sẽ thảo luận về lệnh hợp nhất Git Merge rất quen thuộc trong Git. Nếu bạn là người mới bắt đầu sử dụng Git và đang muốn hiểu quy trình hợp nhất trong Git, thì […]