Lệnh git fetch là một câu lệnh của git, được thực hiện để sở hữu xuống các nội dung trường đoản cú 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 1-1 giản, khi chúng ta thực hiện tại lệnh git fetch, git sẽ tích lũy và lưu trữ những đổi khác mới từ các branch của Remote repository về máy tính xách tay của bạn, nhưng không hợp nhất bọn chúng với Local repository. Với git fetch, chúng ta cũng có thể theo dõi các commit bạn khác đã cập nhật lên server, đồng thời thâu tóm được phần đông thông tin khác nhau giữa remote cùng local. 

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

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

Bạn đang xem: Git fetch là gì


Bạn đã đọc: Git fetch là gì? phân minh git fetch và git pull


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

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

Để làm rõ hơn về cách chuyển động của git fetch, chúng ta cùng mày mò về biện pháp 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 giữ trữ tất cả các commit, local với remote. Git giữ các remote branch commit với local branch commit bóc biệt ví dụ thông qua việc sử dụng các branch ref. Ref cho các local branch được lưu trữ trong ./.git/refs/heads/. Khi triển khai lệnh git branch, hệ thống sẽ xuất ra danh sách các local branch refs. Sau đó là một lấy ví dụ như về đầu ra git branch với một vài demo tên branch.

1 2 3 4

git branch

main

feature1

debug2

khám nghiệm nội dung của folder /. Git / refs / heads / sẽ cho biết thêm hiệu trái tựa như. 1 2 3 4

ls ./.git/refs/heads/

main

feature1

debug2

những remote branch cũng giống như những local branch, không tính chúng ánh xạ tới phần nhiều commit từ kho báu trữ của người khác. Các remote branch có tiền tố là remote mà bọn chúng thuộc về để bạn không trộn chúng với gần như local branch. Giống hệt như những local branches, Git cũng có refs cho đa số remote branch. Những remote branch refs bao gồm trong thư mục. /. Git / refs / remotes /. Đoạn code ví dụ tiếp theo sau hiển thị mọi branch chúng ta hoàn toàn có thể thấy sau khoản thời gian fetching một remote repository có tên là remote-repo : 1 2 3 4 5 6

git branch -r

# origin/main

# origin/feature1

# origin/debug2

# remote-repo/main

# remote-repo/other-feature

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

Bạn 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 nhận những biến hóa của một remote branch, bạn có thể hợp tốt nhất nó thành một local branch bằng cách merge git bình thường. Bởi vì vậy, không giống hệt như SVN, nhất quán hóa kho lưu trữ cục bộ của chúng ta với một kho tàng trữ từ xa thực thụ là một quy trình gồm nhì bước: tìm nạp, sau đó hợp nhất. Lệnh git pull là một phím tắt thuận lợi cho quy trình này.

Xem thêm: Mật Độ Điểm Ảnh Là Gì ? Ý Nghĩa Của Nó Trên Các Smartphone Mật Độ Điểm Ảnh Là Gì

4. Git fetch commands and options


1

git fetch

tìm nạp toàn diện những branch từ kho báu trữ. Điều này cũng cài xuống toàn cục những commit với tệp được yêu cầu từ kho báu trữ khác. 1

git fetch

tựa như như lệnh trên, nhưng lại chỉ kiếm tìm nạp hầu hết branch được chỉ định. 1

git fetch --all

tìm kiếm nạp toàn diện và tổng thể những remote sẽ ĐK và đều branch của bọn chúng : 1

git fetch --dry-run

Tùy lựa chọn – dry-run sẽ xúc tiến chạy demo lệnh. Nó sẽ xuất ra hồ hết ví dụ về gần như hành vi nhưng mà nó sẽ thực hiện trong quá trình tìm nạp nhưng lại không áp dụng chúng.

5. Đồng bộ hoá bắt đầu với git fetch

ví dụ như sau phía dẫn tiến trình tiến độ đồng hóa hóa local repository của doanh nghiệp với branch chủ yếu của kho báu trữ TT. 1

git fetch origin

Điều này đã hiển thị phần lớn branch đã được sở hữu xuống : 1 2 3

a1e8fb5..45e66a4 main -> origin/main

a1e8fb5..9e8ab1c develop -> origin/develop

* some-feature -> origin/some-feature

các commit từ mọi remote branch new này được hiển thị dưới dạng hình vuông vắn vắn rứa vì hình tròn trụ trong sơ đồ mặt dưới. Như các bạn hoàn toàn hoàn toàn có thể thấy, git fetch được chất nhận được bạn truy vấn vào một loạt branch structure của một kho báu trữ khác. Để xem các commit nào vẫn được cấp dưỡng upstream main, chúng ta hoàn toàn hoàn toàn có thể chạy git log áp dụng origin / main làm filter : 1

git log --oneline main..origin/main

Để phê săn sóc những thay đổi và thích hợp nhất nó vào local main branch của bạn, hãy thực hiện những lệnh sau : 1 2

git checkout main

git log origin/main

Sau đó, tất cả chúng ta sẽ thực hiện git merge origin / main : 1

git merge origin/main

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


*
chia sẻ Zalo share Zalo list từ khóa: