Lệnh git fetch là gì? một vài từ khóa được rất nhiều người mới khi bước chân vào làm lập trình tìm hiểu. Vậy lệnh git fetch là gì? Qua nội dung sau đây sẽ cung cấp thêm nhiều nội dung đến bạn đọc, cùng tham khảo nhé.
Lệnh git fetch là gì?
Lệnh git fetch
là một câu lệnh của git, được sử dụng để download các nội dung từ Remote repository mà không làm điều chỉnh trạng thái của Local repository (các dữ liệu như commit, các tệp, refs). Hiểu một cách đơn giản, khi bạn hành động lệnh git fetch
, git sẽ thu thập và lưu trữ những điều chỉnh mới từ các branch của Remote repository về máy tính của bạn, nhưng không phù hợp nhất chúng với Local repository.
Với git fetch
, bạn có thể theo dõi các commit người đối diện đã cập nhật lên server, đồng thời nắm bắt được những nội dung không giống nhau giữa remote và local.
Khác biệt Giữa “git fetch” và “git pull”
<div class=”content ad-inside ad-after mb-3″ style=”box-sizing: border-box; color: rgb(33, 37, 41); font-family: -apple-system, BlinkMacSystemFont, ” segoe=”” ui”,=”” roboto,=”” “helvetica=”” neue”,=”” arial,=”” “noto=”” sans”,=”” sans-serif,=”” “apple=”” color=”” emoji”,=”” “segoe=”” ui=”” symbol”,=”” emoji”;=”” font-size:=”” 16px;=”” margin-bottom:=”” 1rem=”” !important;”=””>
Trong bài đăng này con người sẽ nghiên cứu về sự khác biệt giữa git fetch
và git pull
. Tuy nhiên trước khi bắt đầu thì tôi xin phép lưu ý với các bạn về cấu trúc của một Git repository trên máy local sẽ bao gồm 3 phần:
- Working copy: Chứa các tệp ở commit hiện tại (hay HEAD).
- Staging index: Chứa các điều chỉnh đã được đưa vào.
- Repository: Chứa các commit version với các tệp tương ứng
Câu lệnh git fetch
Khi chạy câu lệnh git fetch $remote_origin
, Git sẽ tải về dữ liệu của toàn bộ các branch của repository trên remote server nằm tại địa chỉ quy định bởi $remote_origin
và cập nhật dữ liệu này với dữ liệu của bí quyết branch dưới đây máy local.
Tuy vậy git fetch
không cập nhật dữ liệu của working copy. Việc làm này có nghĩa là nếu như có bất cứ thay đổi (commit) nào trên remote server thì chúng cũng không tác động tới các tập tin, thư mục của bạn. Tuy vậy nếu bạn chạy checkout một nhánh nào đó và chạy câu lệnh:
$ git status
Thì lúc này Git sẽ xuất hiện cho bạn biết dữ liệu tại working copy có gì khác so sánh với dữ liệu trên remote server hay không.
Câu lệnh git pull
Khi chạy câu lệnh git pull $remote_origin $branch_name
, Git sẽ áp thực hiện việc fetch dữ liệu của Git repository tại nhánh $branch_name
từ server nằm tại địa chỉ quy định bởi $remote_origin
và áp dụng (merge) các điều chỉnh này vào thư mục và tập tin ở working copy.
Câu lệnh git pull
sẽ có khả năng gây ra xung đột (conflict) trong khi merge.
So Sánh “git fetch” và “git pull”
Như vậy chú ý rằng câu lệnh git pull $remote_origin $branch_name
sẽ download (hay fetch) dữ liệu từ một branch duy nhất $branch_name
từ remote server và sau đó merge các điều chỉnh từ remote này vào repository dưới local.
Trái lại git fetch $remote_origin
sẽ tải về (fetch) dữ liệu của tất cả các branch trên URL quy định bởi $remote_origin
nhưng không thực hiện việc merge các thay đổi này vào local.
Xem thêm :9 bí quyết học lập trình mobile cực nhanh của các lập trình viên
Bí quyết công việc của git fetch với remote branch
Lệnh git fetch là gì? Để hiểu rõ hơn về cách công việc của git fetch
, con người cùng tìm hiểu về cách Git tổ chức và lưu giữ các commit. Trong thư mục ./.git/objects của kho lưu giữ, Git lưu giữ toàn bộ các commit, local và remote. Git giữ các remote branch commit và local branch commit tách biệt rõ ràng bằng việc sử dụng các branch ref. Ref cho các local branch được lưu trữ trong ./.git/refs/heads/. Khi thực thi lệnh git branch
, bộ máy sẽ xuất ra danh sách các local branch refs. Sau đây là một chẳng hạn như về đầu ra git branch
với một số demo tên branch.
1 2 3 4 | git branch main feature1 debug2 |
Kiểm tra thông tin của thư mục /.git/refs/heads/ sẽ cho thấy kết quả cũng giống như.
1 2 3 4 | ls ./.git /refs/heads/ main feature1 debug2 |
Các remote branch tương tự 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 xung quanh. 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 các local branch.
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 bây giờ hợp nhất nó vào bản sao local. Điều này tương tự như git fetch theo sau là git merge origin/.
Git pull –no-commit
Tương tự như lời gọi mặc định (default invocation), tìm nạp remote nội dung tuy nhiên 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 dùng git rebase.
Git pull –verbose
Lệnh git fetch là gì? Cung cấp verbose output khi pullo, hiển thị thông tin được tải về và các cụ thể phù hợp nhất.
Qua bài viết trên của Coder.com.vn đã cung cấp các thông tin về lệnh git fetch là gì? Những tùy chọn phổ biến của git . Hy vọng những thông tin trên của bài viết sẽ hữu ích với các bạn đọc, cùng tham khảo nhé.
Mỹ Phượng – Tổng hợp & chỉnh sửa
Tham khảo ( bizflycloud.vn, topdev.vn, … )
Bình luận về chủ đề post