Lệnh git fetch là mảnh ghép còn lại trong cặp lệnh giúp chuyển giao nội dung giữa local repository và remote repository: trong khi git push đẩy các commit từ local repository lên remote, thì git fetch làm nhiệm vụ tải các commit về.
Việc tải các commit của thành viên khác về máy không làm ảnh hưởng đến local repository của bạn ngay lập tức. Các commit này sẽ ở trên một remote tracked branch và cần được merge thủ công. Điều này cho phép bạn kiểm tra, xem xét các thay đổi trước khi quyết định tích hợp chúng như thế nào.
Để thực sự đưa các thay đổi của người khác vào công việc của bạn, sau lệnh fetch thường sẽ là lệnh merge hoặc rebase.
git fetch <tên-remote> <tên-branch>
Ví dụ:
git fetch origin main
Mặc định: Nếu bạn không chỉ định tên remote repository, Git sẽ tự động hiểu là bạn muốn fetch lên origin. Nếu bạn không chỉ định tên branch, Git sẽ mặc định chọn branch mà bạn đang đứng.
Fetch thường được sử dụng kết hợp với merge hoặc rebase để tích hợp các thay đổi từ remote sau khi đã tải chúng về. Dưới đây là vài ví dụ:
Fetch kết hợp với Merge:
git fetch origin main
git switch main
git merge origin/main
git fetch origin main: tải xuống các commit mới từ nhánh main của repository origin.
git merge origin/main: Tiến hành merge những thay đổi vừa tải về đó vào nhánh main ở local repository.
Fetch kết hợp với Rebase:
git fetch origin main
git switch main
git rebase origin/main
git rebase origin/main: Thực hiện di chuyển các commit mới ở local lên trên đầu của các commit vừa tải về từ remote.git pull là một lựa chọn khác để tải nội dung từ remote repository. Nó gộp hai lệnh: git fetch và git merge (hoặc git rebase).
Việc dùng lệnh pull thường được coi là kém "an toàn" hơn so với fetch, vì nó yêu cầu người dùng phải xác định cách tích hợp thay đổi ngay lập tức trước khi kịp xem xét những thay đổi đó là gì.
Bài học tiếp theo sẽ đi sâu vào các khía cạnh chi tiết của git pull.
Tiếp theo: Git pull