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ì? Git Pull đượ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ề 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 Fetch và Git 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à gì
Git Pull là sự kết hợp của 2 lệnh Git fetch và Git Merge (Nguồn: javatpoint)

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:

Git Pull là gì? Mô hình hoạt động của Git Pull
Mô hình hoạt động của Git Pull (Nguồn: Atlassian)

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
Theo sơ đồ, H chính là một merge commit mới (Nguồn: Atlassian)

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 Pull và Git 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 là gì? Phân biệt Git Pull và Git Fetch
Git Pull và Git Fetch đều tải xuống dữ liệu từ Remote repository (Nguồn: ToolsQA)

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 về 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
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ì? Git Pull đượ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 […]
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ì […]
Git Commit là gì? Git Commit được sử dụng như thế nào?

Git Commit là gì? Git Commit được sử dụng như thế nào?

Trong Git có một lệnh cho phép các lập trình viên ghi những thay đổi của dự án một cách dễ dàng gọi là Git Commit. Vậy chính xác Git Commit là gì? Git Commit được sử dụng như thế nào? Hãy cùng Got It tìm hiểu trong bài viết dưới đây nhé! Tìm hiểm […]
8 tính năng hữu ích của Git Stash

8 tính năng hữu ích của Git Stash

Trong quá trình làm việc với Git Tools, chắc hẳn các bạn đều đã nghe đến khái niệm Git Stash. Vậy nó là gì? Làm thế nào để công việc đơn giản hơn với công cụ này? Hãy cùng Got It Vietnam khám phá qua bài viết sau nhé! Tìm hiểu thêm: Git Pull là […]
Git Rebase là gì? Khi nào nên sử dụng Git Rebase?

Git Rebase là gì? Khi nào nên sử dụng Git Rebase?

Hai khái niệm làm nhiều kỹ sư IT đau đầu và khó phân biệt nhất chắc chắn là Git Rebase và Git Merge. Vậy Git Rebase là gì và khi nào nên sử dụng Git Rebase? Tất cả những câu hỏi này sẽ được giải đáp trong bài viết này của Got It Vietnam. Mục […]