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

Chúng tôi rất vui mừng được chia sẻ kiến thức sâu sắc về từ khóa Git pull la gi và hy vọng rằng nó sẽ hữu ích cho bạn đọc. Bài viết tập trung trình bày ý nghĩa, vai trò và ứng dụng của từ khóa này trong việc tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Chúng tôi cung cấp các phương pháp tìm kiếm, phân tích và lựa chọn từ khóa phù hợp, cùng với các chiến lược và công cụ hữu ích. Hy vọng rằng thông tin mà chúng tôi chia sẻ sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Xin chân thành cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog của chúng tôi để cập nhật những kiến thức mới nhất.

Rất nhiều các bạn đang thao tác trong nghành nghề IT thắc mắc về phong thái 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 thế nào? Và đâu là việc khác biệt giữa hai lệnh git fetch và git pull? Hãy cùng Got It tìm lời trả lời cho những vướng mắc trên ở nội dung bài viết này nhé!

Bạn Đang Xem: Git fetch là gì? Phân biệt git fetch và git pull

1. Lệnh git fetch là gì?

Lệnh git fetch là một câu lệnh của git, được sử dụng để tải xuống các nội dung từ Remote repository mà không làm thay đổi trạng thái của Local repository (các tài liệu như commit, các file, refs). Hiểu một cách đơn giản, khi chúng ta thực hiện lệnh git fetch, git sẽ thu thập và lưu trữ những thay đổi mới từ các branch của Remote repository về máy tính của bạn, nhưng không thống nhất chúng với Local repository. Với git fetch, bạn cũng có thể theo dõi các commit người khác đã update lên server, song song nắm bắt được những thông tin khác nhau giữa remote và local.

2. Sự khác biệt giữa git pull và git fetch là gì?

Trong quá trình thao tác với git, nhiều engineer hay bị rối và nhầm lẫn hai lệnh git fetch và git pull bởi cả hai đều được sử dụng để tải về remote content. Tuy nhiên, git fetch được xem là phiên bản ‘an toàn’ hơn của git pull. Khi sử dụng, lệnh này sẽ tải xuống remote content mà không update trạng thái hoạt động của local repository. Từ đó, nội dung công việc ngày nay của bạn không bị tác động ảnh hưởng. Trái lại, lệnh git pull sẽ tải xuống remote content và ngay ngay lập tức thực hiện git merge để merge commit cho remote content mới. Nếu như bạn có những thay đổi đang chờ xử lý, điều này còn có thể vô tình khiến local repository rơi vào trạng thái xung đột.

Ngoài ra, git fetch thường được sử dụng trong trường hợp có nhiều người thao tác trên cùng một nhánh. Còn git pull nên làm sử dụng khi có một người thao tác trên nhánh để tránh xung đột. Bạn nên làm dùng lệnh git pull trên một thư mục thao tác sạch (không có thay đổi đã cam kết).

  • Đọc thêm: Git Pull là gì? Mô hình hoạt động của lệnh Git Pull

3. Cách hoạt động của git fetch với remote branch

Để làm rõ hơn về phong thái hoạt động của git fetch, tất cả chúng ta cùng tìm hiểu về phong thái Git tổ chức và lưu trữ các commit. Trong thư mục ./.git/objects của kho lưu trữ, Git lưu trữ tất cả những commit, local và remote. Git giữ các remote branch commit và local branch commit tách biệt rõ ràng thông qua việc sử dụng các branch ref. Ref cho những local branch được lưu trữ trong ./.git/refs/heads/. Khi thực thi lệnh git branch, khối hệ thống sẽ xuất ra list các local branch refs. Sau đây là một ví dụ về đầu ra git branch với một số demo tên branch.

Kiểm tra nội dung của thư mục /.git/refs/heads/ sẽ cho thấy kết quả tương tự.

Xem Thêm : Phần cứng máy tính là gì

Các remote branch cũng tựa như các local branch, ngoại trừ chúng ánh xạ tới các commit từ kho lưu trữ của người khác. Các remote branch có tiền tố là remote mà chúng thuộc về để bạn không trộn chúng với những local branch. Như các local branches, Git cũng xuất hiện refs cho những remote branch. Các remote branch refs có trong thư mục ./.git/refs/remotes/. Đoạn code ví dụ tiếp theo hiển thị các branch bạn cũng có thể thấy sau khoản thời gian fetching một remote repository mang tên là remote-repo:

Output này hiển thị các local branch mà tất cả chúng ta đã kiểm tra trước đó với tiền tố là origin/. Ngoài ra, tất cả chúng ta thấy các remote branch có tiền tố là remote-repo. Chúng ta có thể kiểm tra một remote branch giống như một local branch, nhưng điều này sẽ đặt bạn vào trạng thái Detached HEAD (giống như kiểm tra một commit cũ). Chúng ta có thể coi chúng như các branch chỉ đọc. Không những thế, để xem những nhánh từ xa của bạn, chỉ việc chuyển r-flag vào lệnh git branch.

Chúng ta có thể kiểm tra các remote branch bằng các lệnh git checkout và git log thông thường. Nếu như bạn chấp thuận những thay đổi của một remote branch, bạn cũng có thể thống nhất nó thành một local branch bằng phương pháp merge git thường ngày. Vì vậy, không như SVN, đồng bộ hóa kho lưu trữ cục bộ của bạn với một kho lưu trữ từ xa thực sự là một quá trình gồm hai bước: tìm nạp, sau đó thống nhất. Lệnh git pull là một phím tắt thuận tiện cho quá trình này.

4. Git fetch commands and options

Tìm nạp tất cả những branch từ kho lưu trữ. Điều này cũng tải xuống tất cả những commit và tệp được yêu cầu từ kho lưu trữ khác.

Tương tự như lệnh trên, nhưng chỉ tìm nạp những branch được chỉ định.

Tìm nạp tất cả những remote đã đăng ký và các branch của chúng:

Tùy chọn -dry-run sẽ thực hiện chạy thử lệnh. Nó sẽ xuất ra các ví dụ về các hành động mà nó sẽ thực hiện trong quá trình tìm nạp nhưng không vận dụng chúng.

5. Đồng bộ hoá nguồn gốc với git fetch

Xem Thêm : Máy nước nóng là gì? Công dụng của máy nước nóng

Ví dụ sau hướng dẫn quy trình đồng bộ hóa local repository của bạn với branch chính của kho lưu trữ trung tâm.

Điều này sẽ hiển thị các branch đã được tải xuống:

Các commit từ các remote branch mới này được hiển thị dưới hình trạng vuông thay vì hình tròn trong sơ đồ phía bên dưới. Như bạn cũng có thể thấy, git fetch được chấp nhận bạn truy cập vào toàn bộ branch structure của một kho lưu trữ khác.

Để xem những commit nào đã được thêm vào upstream main, bạn cũng có thể chạy git log sử dụng origin/main làm filter:

Để phê duyệt các thay đổi và thống nhất chúng vào local main branch của bạn, hãy sử dụng các lệnh sau:

Sau đó, tất cả chúng ta sẽ sử dụng git merge origin/main:

Origin/Main và main branch hiện trỏ đến cùng một commit và được đồng bộ hóa với những phát triển ngược dòng.

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

You May Also Like

About the Author: v1000